diff --git a/res/values/strings.xml b/res/values/strings.xml index 424f7a20a9c..dea2bd2cd15 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -13214,6 +13214,8 @@ network connection, internet, wireless, data, wifi, wi-fi, wi fi, cellular, mobile, cell carrier, 4g, 3g, 2g, lte Turn on Wi\u2011Fi + + Turn off Wi\u2011Fi Reset your internet? @@ -13228,8 +13230,8 @@ Networks available To switch networks, disconnect ethernet - - Wi\u2011Fi is turned on + + Wi\u2011Fi is off Tap a network to connect diff --git a/src/com/android/settings/network/TurnOnWifiSlice.java b/src/com/android/settings/network/TurnOnWifiSlice.java deleted file mode 100644 index 05a873fef0c..00000000000 --- a/src/com/android/settings/network/TurnOnWifiSlice.java +++ /dev/null @@ -1,147 +0,0 @@ -/* - * Copyright (C) 2021 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.network; - -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; -import android.graphics.Color; -import android.graphics.drawable.ColorDrawable; -import android.graphics.drawable.Drawable; -import android.net.Uri; -import android.net.wifi.WifiManager; -import android.util.Log; - -import androidx.core.graphics.drawable.IconCompat; -import androidx.slice.Slice; -import androidx.slice.builders.ListBuilder; -import androidx.slice.builders.ListBuilder.RowBuilder; -import androidx.slice.builders.SliceAction; -import androidx.slice.core.SliceHints; - -import com.android.settings.R; -import com.android.settings.Utils; -import com.android.settings.slices.CustomSliceRegistry; -import com.android.settings.slices.CustomSliceable; -import com.android.settings.slices.SliceBackgroundWorker; -import com.android.settings.slices.SliceBroadcastReceiver; - -/** - * {@link CustomSliceable} for turning on Wi-Fi, used by generic clients. - */ -public class TurnOnWifiSlice implements CustomSliceable { - - private static final String TAG = "TurnOnWifiSlice"; - - private final Context mContext; - private final WifiManager mWifiManager; - - public TurnOnWifiSlice(Context context) { - mContext = context; - mWifiManager = mContext.getSystemService(WifiManager.class); - } - - private static void logd(String s) { - Log.d(TAG, s); - } - - @Override - public Slice getSlice() { - if (mWifiManager.isWifiEnabled()) { - return null; - } - final String title = mContext.getText(R.string.turn_on_wifi).toString(); - final SliceAction primaryAction = SliceAction.create(getBroadcastIntent(mContext), - getEndIcon(), ListBuilder.ICON_IMAGE, title); - final ListBuilder listBuilder = new ListBuilder(mContext, getUri(), ListBuilder.INFINITY) - .addRow(new RowBuilder() - .setTitle(title) - .addEndItem(getEndIcon(), SliceHints.ICON_IMAGE) - .setPrimaryAction(primaryAction)); - return listBuilder.build(); - } - - @Override - public Uri getUri() { - return CustomSliceRegistry.TURN_ON_WIFI_SLICE_URI; - } - - @Override - public void onNotifyChange(Intent intent) { - logd("Action: turn on Wi-Fi networks"); - mWifiManager.setWifiEnabled(true); - } - - @Override - public Intent getIntent() { - return new Intent(getUri().toString()) - .setData(getUri()) - .setClass(mContext, SliceBroadcastReceiver.class); - } - - private IconCompat getEndIcon() { - final Drawable drawable = mContext.getDrawable(R.drawable.ic_settings_wireless); - if (drawable == null) { - return Utils.createIconWithDrawable(new ColorDrawable(Color.TRANSPARENT)); - } - drawable.setTintList(Utils.getColorAttr(mContext, android.R.attr.colorAccent)); - return Utils.createIconWithDrawable(drawable); - } - - @Override - public Class getBackgroundWorkerClass() { - return TurnOnWifiWorker.class; - } - - /** - * The Slice background worker {@link SliceBackgroundWorker} is used to listen the Wi-Fi - * status change, and then notifies the Slice {@link Uri} to update. - */ - public static class TurnOnWifiWorker extends SliceBackgroundWorker { - - private final IntentFilter mIntentFilter; - private final BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() { - @Override - public void onReceive(Context context, Intent intent) { - if (WifiManager.WIFI_STATE_CHANGED_ACTION.equals(intent.getAction())) { - notifySliceChange(); - } - } - }; - - public TurnOnWifiWorker(Context context, Uri uri) { - super(context, uri); - mIntentFilter = new IntentFilter(WifiManager.WIFI_STATE_CHANGED_ACTION); - } - - @Override - protected void onSlicePinned() { - getContext().registerReceiver(mBroadcastReceiver, mIntentFilter); - } - - @Override - protected void onSliceUnpinned() { - getContext().unregisterReceiver(mBroadcastReceiver); - } - - @Override - public void close() { - // Do nothing. - } - } -} diff --git a/src/com/android/settings/panel/InternetConnectivityPanel.java b/src/com/android/settings/panel/InternetConnectivityPanel.java index a6c18a5b749..e6344d806c2 100644 --- a/src/com/android/settings/panel/InternetConnectivityPanel.java +++ b/src/com/android/settings/panel/InternetConnectivityPanel.java @@ -19,8 +19,6 @@ 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.NetworkProviderSettings.ACTION_NETWORK_PROVIDER_SETTINGS; - import android.app.settings.SettingsEnums; import android.content.BroadcastReceiver; import android.content.Context; @@ -32,7 +30,6 @@ import android.net.wifi.WifiManager; import android.os.Handler; import android.os.HandlerExecutor; import android.os.Looper; -import android.provider.Settings; import android.telephony.ServiceState; import android.telephony.SubscriptionManager; import android.telephony.TelephonyCallback; @@ -41,6 +38,7 @@ import android.text.TextUtils; import android.util.Log; import androidx.annotation.VisibleForTesting; +import androidx.fragment.app.FragmentActivity; import androidx.lifecycle.LifecycleObserver; import androidx.lifecycle.OnLifecycleEvent; @@ -64,7 +62,7 @@ public class InternetConnectivityPanel implements PanelContent, LifecycleObserve SubscriptionsChangeListener.SubscriptionsChangeListenerClient { private static final String TAG = "InternetConnectivityPanel"; private static final int SUBTITLE_TEXT_NONE = -1; - private static final int SUBTITLE_TEXT_WIFI_IS_TURNED_ON = R.string.wifi_is_turned_on_subtitle; + private static final int SUBTITLE_TEXT_WIFI_IS_OFF = R.string.wifi_is_off; private static final int SUBTITLE_TEXT_TAP_A_NETWORK_TO_CONNECT = R.string.tap_a_network_to_connect; private static final int SUBTITLE_TEXT_SEARCHING_FOR_NETWORKS = @@ -198,7 +196,6 @@ public class InternetConnectivityPanel implements PanelContent, LifecycleObserve final List uris = new ArrayList<>(); if (mIsProviderModelEnabled) { uris.add(CustomSliceRegistry.PROVIDER_MODEL_SLICE_URI); - uris.add(CustomSliceRegistry.TURN_ON_WIFI_SLICE_URI); } else { uris.add(CustomSliceRegistry.WIFI_SLICE_URI); uris.add(CustomSliceRegistry.MOBILE_DATA_SLICE_URI); @@ -209,9 +206,7 @@ public class InternetConnectivityPanel implements PanelContent, LifecycleObserve @Override public Intent getSeeMoreIntent() { - return new Intent(mIsProviderModelEnabled - ? ACTION_NETWORK_PROVIDER_SETTINGS : Settings.ACTION_WIRELESS_SETTINGS) - .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + return null; } @Override @@ -221,15 +216,14 @@ public class InternetConnectivityPanel implements PanelContent, LifecycleObserve @Override public CharSequence getCustomizedButtonTitle() { - if (mInternetUpdater.isAirplaneModeOn() && !mInternetUpdater.isWifiEnabled()) { - return null; - } - return mContext.getText(R.string.settings_button); + return mContext.getText( + mInternetUpdater.isWifiEnabled() ? R.string.turn_off_wifi : R.string.turn_on_wifi); } @Override - public void onClickCustomizedButton() { - mContext.startActivity(getSeeMoreIntent()); + public void onClickCustomizedButton(FragmentActivity panelActivity) { + // Don't finish the panel activity + mWifiManager.setWifiEnabled(!mInternetUpdater.isWifiEnabled()); } @Override @@ -290,15 +284,7 @@ public class InternetConnectivityPanel implements PanelContent, LifecycleObserve return; } updateSubtitleText(); - - log("Subtitle:" + mSubtitle); - if (mSubtitle != SUBTITLE_TEXT_NONE) { - mCallback.onHeaderChanged(); - } else { - // Other situations. - // Title: Airplane mode / Internet - mCallback.onTitleChanged(); - } + mCallback.onHeaderChanged(); mCallback.onCustomizedButtonStateChanged(); } @@ -310,15 +296,23 @@ public class InternetConnectivityPanel implements PanelContent, LifecycleObserve private void updateSubtitleText() { mSubtitle = SUBTITLE_TEXT_NONE; if (!mInternetUpdater.isWifiEnabled()) { + if (!mInternetUpdater.isAirplaneModeOn()) { + // When the airplane mode is off and Wi-Fi is disabled. + // Sub-Title: Wi-Fi is off + log("Airplane mode off + Wi-Fi off."); + mSubtitle = SUBTITLE_TEXT_WIFI_IS_OFF; + } + return; + } + + if (mIsProgressBarVisible) { + // When the Wi-Fi scan result callback is received + // Sub-Title: Searching for networks... + mSubtitle = SUBTITLE_TEXT_SEARCHING_FOR_NETWORKS; return; } if (mInternetUpdater.isAirplaneModeOn()) { - // When the airplane mode is on and Wi-Fi is enabled. - // Title: Airplane mode - // Sub-Title: Wi-Fi is turned on - log("Airplane mode is on + Wi-Fi on."); - mSubtitle = SUBTITLE_TEXT_WIFI_IS_TURNED_ON; return; } @@ -330,13 +324,6 @@ public class InternetConnectivityPanel implements PanelContent, LifecycleObserve return; } - if (mIsProgressBarVisible) { - // When the Wi-Fi scan result callback is received - // Sub-Title: Searching for networks... - mSubtitle = SUBTITLE_TEXT_SEARCHING_FOR_NETWORKS; - return; - } - // Sub-Title: // show non_carrier_network_unavailable // - while Wi-Fi on + no Wi-Fi item diff --git a/src/com/android/settings/panel/PanelContent.java b/src/com/android/settings/panel/PanelContent.java index 4c24182559d..6b582288457 100644 --- a/src/com/android/settings/panel/PanelContent.java +++ b/src/com/android/settings/panel/PanelContent.java @@ -20,6 +20,7 @@ import android.content.Intent; import android.net.Uri; import androidx.core.graphics.drawable.IconCompat; +import androidx.fragment.app.FragmentActivity; import com.android.settingslib.core.instrumentation.Instrumentable; @@ -94,8 +95,11 @@ public interface PanelContent extends Instrumentable { /** * Implement the click event for custom button. + * + * @param panelActivity the FragmentActivity from PanelFragment, the user can decide whether + * to finish activity or not. */ - default void onClickCustomizedButton() {} + default void onClickCustomizedButton(FragmentActivity panelActivity) {} /** * Register to start receiving callbacks for custom button events. diff --git a/src/com/android/settings/panel/PanelFragment.java b/src/com/android/settings/panel/PanelFragment.java index 31cb7b8d0ac..cd2bb50ce20 100644 --- a/src/com/android/settings/panel/PanelFragment.java +++ b/src/com/android/settings/panel/PanelFragment.java @@ -491,11 +491,11 @@ public class PanelFragment extends Fragment { mPanelClosedKey = PanelClosedKeys.KEY_SEE_MORE; final FragmentActivity activity = getActivity(); if (mPanel.isCustomizedButtonUsed()) { - mPanel.onClickCustomizedButton(); + mPanel.onClickCustomizedButton(activity); } else { activity.startActivityForResult(mPanel.getSeeMoreIntent(), 0); + activity.finish(); } - activity.finish(); }; } diff --git a/src/com/android/settings/slices/CustomSliceRegistry.java b/src/com/android/settings/slices/CustomSliceRegistry.java index 713d61a1ddd..d1b169c2976 100644 --- a/src/com/android/settings/slices/CustomSliceRegistry.java +++ b/src/com/android/settings/slices/CustomSliceRegistry.java @@ -40,7 +40,6 @@ import com.android.settings.location.LocationSlice; import com.android.settings.media.MediaOutputIndicatorSlice; import com.android.settings.media.RemoteMediaSlice; import com.android.settings.network.ProviderModelSlice; -import com.android.settings.network.TurnOnWifiSlice; import com.android.settings.network.telephony.MobileDataSlice; import com.android.settings.notification.zen.ZenModeButtonPreferenceController; import com.android.settings.wifi.calling.WifiCallingSliceHelper; @@ -337,7 +336,6 @@ public class CustomSliceRegistry { sUriToSlice.put(DARK_THEME_SLICE_URI, DarkThemeSlice.class); sUriToSlice.put(REMOTE_MEDIA_SLICE_URI, RemoteMediaSlice.class); sUriToSlice.put(ALWAYS_ON_SLICE_URI, AlwaysOnDisplaySlice.class); - sUriToSlice.put(TURN_ON_WIFI_SLICE_URI, TurnOnWifiSlice.class); } public static Class getSliceClassByUri(Uri uri) { diff --git a/tests/unit/src/com/android/settings/network/TurnOnWifiSliceTest.java b/tests/unit/src/com/android/settings/network/TurnOnWifiSliceTest.java deleted file mode 100644 index befa655ce97..00000000000 --- a/tests/unit/src/com/android/settings/network/TurnOnWifiSliceTest.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright (C) 2021 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.network; - -import static com.google.common.truth.Truth.assertThat; - -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import android.content.Context; -import android.content.Intent; -import android.net.wifi.WifiManager; - -import androidx.slice.SliceProvider; -import androidx.slice.widget.SliceLiveData; -import androidx.test.core.app.ApplicationProvider; -import androidx.test.ext.junit.runners.AndroidJUnit4; - -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; - -@RunWith(AndroidJUnit4.class) -public class TurnOnWifiSliceTest { - - @Rule - public MockitoRule mMocks = MockitoJUnit.rule(); - @Mock - private WifiManager mWifiManager; - - private Context mContext; - private TurnOnWifiSlice mSlice; - - @Before - public void setUp() { - mContext = spy(ApplicationProvider.getApplicationContext()); - when(mContext.getSystemService(Context.WIFI_SERVICE)).thenReturn(mWifiManager); - - // Set-up specs for SliceMetadata. - SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS); - mSlice = new TurnOnWifiSlice(mContext); - } - - @Test - public void getSlice_wifiEnabled_shouldBeNull() { - when(mWifiManager.isWifiEnabled()).thenReturn(true); - - assertThat(mSlice.getSlice()).isNull(); - } - - @Test - public void getSlice_wifiDisabled_shouldBeNotNull() { - when(mWifiManager.isWifiEnabled()).thenReturn(false); - - assertThat(mSlice.getSlice()).isNotNull(); - } - - @Test - public void onNotifyChange_shouldSetWifiEnabled() { - Intent intent = mSlice.getIntent(); - - mSlice.onNotifyChange(intent); - - verify(mWifiManager).setWifiEnabled(true); - } -} diff --git a/tests/unit/src/com/android/settings/panel/InternetConnectivityPanelTest.java b/tests/unit/src/com/android/settings/panel/InternetConnectivityPanelTest.java index 150c99e2945..e475e6fe1db 100644 --- a/tests/unit/src/com/android/settings/panel/InternetConnectivityPanelTest.java +++ b/tests/unit/src/com/android/settings/panel/InternetConnectivityPanelTest.java @@ -34,6 +34,7 @@ import android.net.wifi.ScanResult; import android.net.wifi.WifiManager; import android.os.Handler; +import androidx.fragment.app.FragmentActivity; import androidx.test.core.app.ApplicationProvider; import androidx.test.ext.junit.runners.AndroidJUnit4; @@ -61,19 +62,22 @@ public class InternetConnectivityPanelTest { ApplicationProvider.getApplicationContext(), "provider_internet_settings"); public static final String TITLE_APM = ResourcesUtils.getResourcesString( ApplicationProvider.getApplicationContext(), "airplane_mode"); - public static final String SUBTITLE_WIFI_IS_TURNED_ON = ResourcesUtils.getResourcesString( - ApplicationProvider.getApplicationContext(), "wifi_is_turned_on_subtitle"); + public static final String SUBTITLE_TEXT_WIFI_IS_OFF = + ResourcesUtils.getResourcesString(ApplicationProvider.getApplicationContext(), + "wifi_is_off"); public static final String SUBTITLE_TEXT_TAP_A_NETWORK_TO_CONNECT = ResourcesUtils.getResourcesString(ApplicationProvider.getApplicationContext(), "tap_a_network_to_connect"); - public static final String BUTTON_SETTINGS = ResourcesUtils.getResourcesString( - ApplicationProvider.getApplicationContext(), "settings_button"); public static final String SUBTITLE_NON_CARRIER_NETWORK_UNAVAILABLE = ResourcesUtils.getResourcesString(ApplicationProvider.getApplicationContext(), "non_carrier_network_unavailable"); public static final String SUBTITLE_ALL_NETWORK_UNAVAILABLE = ResourcesUtils.getResourcesString(ApplicationProvider.getApplicationContext(), "all_network_unavailable"); + public static final String BUTTON_TURN_ON_WIFI = ResourcesUtils.getResourcesString( + ApplicationProvider.getApplicationContext(), "turn_on_wifi"); + public static final String BUTTON_TURN_OFF_WIFI = ResourcesUtils.getResourcesString( + ApplicationProvider.getApplicationContext(), "turn_off_wifi"); @Rule public final MockitoRule mMocks = MockitoJUnit.rule(); @@ -87,6 +91,8 @@ public class InternetConnectivityPanelTest { private WifiManager mWifiManager; @Mock private ProviderModelSliceHelper mProviderModelSliceHelper; + @Mock + private FragmentActivity mPanelActivity; private Context mContext; private InternetConnectivityPanel mPanel; @@ -128,13 +134,21 @@ public class InternetConnectivityPanelTest { } @Test - public void getSubTitle_apmOnWifiOn_shouldWifiIsTurnedOn() { + public void getSubTitle_apmOnWifiOn_shouldBeNull() { doReturn(true).when(mInternetUpdater).isAirplaneModeOn(); doReturn(true).when(mInternetUpdater).isWifiEnabled(); + assertThat(mPanel.getSubTitle()).isNull(); + } + + @Test + public void getSubTitle_apmOffWifiOff_wifiIsOn() { + doReturn(false).when(mInternetUpdater).isAirplaneModeOn(); + doReturn(false).when(mInternetUpdater).isWifiEnabled(); + mPanel.updatePanelTitle(); - assertThat(mPanel.getSubTitle()).isEqualTo(SUBTITLE_WIFI_IS_TURNED_ON); + assertThat(mPanel.getSubTitle()).isEqualTo(SUBTITLE_TEXT_WIFI_IS_OFF); } @Test @@ -190,26 +204,17 @@ public class InternetConnectivityPanelTest { } @Test - public void getCustomizedButtonTitle_apmOff_shouldBeSettings() { - doReturn(false).when(mInternetUpdater).isAirplaneModeOn(); - - assertThat(mPanel.getCustomizedButtonTitle()).isEqualTo(BUTTON_SETTINGS); - } - - @Test - public void getCustomizedButtonTitle_apmOnWifiOff_shouldBeNull() { - doReturn(true).when(mInternetUpdater).isAirplaneModeOn(); + public void getCustomizedButtonTitle_wifiOff_turnOnWifi() { doReturn(false).when(mInternetUpdater).isWifiEnabled(); - assertThat(mPanel.getCustomizedButtonTitle()).isNull(); + assertThat(mPanel.getCustomizedButtonTitle()).isEqualTo(BUTTON_TURN_ON_WIFI); } @Test - public void getCustomizedButtonTitle_apmOnWifiOn_shouldBeSettings() { - doReturn(true).when(mInternetUpdater).isAirplaneModeOn(); + public void getCustomizedButtonTitle_wifiOn_turnOffWifi() { doReturn(true).when(mInternetUpdater).isWifiEnabled(); - assertThat(mPanel.getCustomizedButtonTitle()).isEqualTo(BUTTON_SETTINGS); + assertThat(mPanel.getCustomizedButtonTitle()).isEqualTo(BUTTON_TURN_OFF_WIFI); } @Test @@ -227,92 +232,60 @@ public class InternetConnectivityPanelTest { public void getSlices_providerModelEnabled_containsNecessarySlices() { List uris = mPanel.getSlices(); - assertThat(uris).containsExactly( - CustomSliceRegistry.PROVIDER_MODEL_SLICE_URI, - CustomSliceRegistry.TURN_ON_WIFI_SLICE_URI); + assertThat(uris).containsExactly(CustomSliceRegistry.PROVIDER_MODEL_SLICE_URI); } @Test - public void getSeeMoreIntent_notNull() { - assertThat(mPanel.getSeeMoreIntent()).isNotNull(); + public void getSeeMoreIntent_shouldBeNull() { + assertThat(mPanel.getSeeMoreIntent()).isNull(); } @Test - public void onAirplaneModeOn_apmOff_onTitleChanged() { - doReturn(false).when(mInternetUpdater).isAirplaneModeOn(); - clearInvocations(mPanelContentCallback); - - mPanel.onAirplaneModeChanged(false); - - verify(mPanelContentCallback).onTitleChanged(); - } - - @Test - public void onAirplaneModeOn_apmOnWifiOff_onTitleChanged() { - doReturn(true).when(mInternetUpdater).isAirplaneModeOn(); - doReturn(false).when(mInternetUpdater).isWifiEnabled(); - clearInvocations(mPanelContentCallback); - - mPanel.onAirplaneModeChanged(true); - - verify(mPanelContentCallback).onTitleChanged(); - } - - @Test - public void onAirplaneModeOn_apmOnWifiOn_onHeaderChanged() { - doReturn(true).when(mInternetUpdater).isAirplaneModeOn(); + public void onClickCustomizedButton_wifiOn_setWifiOff() { doReturn(true).when(mInternetUpdater).isWifiEnabled(); + + mPanel.onClickCustomizedButton(mPanelActivity); + + verify(mWifiManager).setWifiEnabled(false); + } + + @Test + public void onClickCustomizedButton_wifiOff_setWifiOn() { + doReturn(false).when(mInternetUpdater).isWifiEnabled(); + + mPanel.onClickCustomizedButton(mPanelActivity); + + verify(mWifiManager).setWifiEnabled(true); + } + + @Test + public void onClickCustomizedButton_shouldNotFinishActivity() { + mPanel.onClickCustomizedButton(mPanelActivity); + + verify(mPanelActivity, never()).finish(); + } + + @Test + public void updatePanelTitle_onHeaderChanged() { clearInvocations(mPanelContentCallback); - mPanel.onAirplaneModeChanged(true); + mPanel.updatePanelTitle(); verify(mPanelContentCallback).onHeaderChanged(); } @Test - public void onAirplaneModeOn_onCustomizedButtonStateChanged() { - doReturn(true).when(mInternetUpdater).isAirplaneModeOn(); + public void onWifiEnabledChanged_wifiOff_onCustomizedButtonStateChanged() { + doReturn(false).when(mInternetUpdater).isWifiEnabled(); clearInvocations(mPanelContentCallback); - mPanel.onAirplaneModeChanged(true); + mPanel.onWifiEnabledChanged(false); verify(mPanelContentCallback).onCustomizedButtonStateChanged(); } @Test - public void onWifiEnabledChanged_apmOff_onTitleChanged() { - doReturn(false).when(mInternetUpdater).isAirplaneModeOn(); - clearInvocations(mPanelContentCallback); - - mPanel.onWifiEnabledChanged(false); - - verify(mPanelContentCallback).onTitleChanged(); - } - - @Test - public void onWifiEnabledChanged_apmOnWifiOff_onTitleChanged() { - doReturn(true).when(mInternetUpdater).isAirplaneModeOn(); - doReturn(false).when(mInternetUpdater).isWifiEnabled(); - clearInvocations(mPanelContentCallback); - - mPanel.onWifiEnabledChanged(true); - - verify(mPanelContentCallback).onTitleChanged(); - } - - @Test - public void onWifiEnabledChanged_apmOnWifiOn_onHeaderChanged() { - doReturn(true).when(mInternetUpdater).isAirplaneModeOn(); - doReturn(true).when(mInternetUpdater).isWifiEnabled(); - clearInvocations(mPanelContentCallback); - - mPanel.onWifiEnabledChanged(true); - - verify(mPanelContentCallback).onHeaderChanged(); - } - - @Test - public void onWifiEnabledChanged_onCustomizedButtonStateChanged() { + public void onWifiEnabledChanged_wifiOn_onCustomizedButtonStateChanged() { doReturn(true).when(mInternetUpdater).isWifiEnabled(); clearInvocations(mPanelContentCallback);