diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 87162822ac9..97de9a52741 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -299,6 +299,26 @@ android:value="true" /> + + + + + + + + + + diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java index 404207ddb7f..cc9542b2dd4 100644 --- a/src/com/android/settings/Settings.java +++ b/src/com/android/settings/Settings.java @@ -90,6 +90,8 @@ public class Settings extends SettingsActivity { public static class WifiSettingsActivity extends SettingsActivity { /* empty */ } public static class WifiSettings2Activity extends SettingsActivity { /* empty */ } public static class NetworkProviderSettingsActivity extends SettingsActivity { /* empty */ } + /** Activity for the Wi-Fi network details settings. */ + public static class WifiDetailsSettingsActivity extends SettingsActivity { /* empty */ } public static class WifiP2pSettingsActivity extends SettingsActivity { /* empty */ } public static class AvailableVirtualKeyboardActivity extends SettingsActivity { /* empty */ } public static class KeyboardLayoutPickerActivity extends SettingsActivity { /* empty */ } diff --git a/src/com/android/settings/core/gateway/SettingsGateway.java b/src/com/android/settings/core/gateway/SettingsGateway.java index d0fb7abaa73..458aadb87f2 100644 --- a/src/com/android/settings/core/gateway/SettingsGateway.java +++ b/src/com/android/settings/core/gateway/SettingsGateway.java @@ -159,6 +159,7 @@ import com.android.settings.wifi.WifiInfo; import com.android.settings.wifi.WifiSettings; import com.android.settings.wifi.calling.WifiCallingDisclaimerFragment; import com.android.settings.wifi.calling.WifiCallingSettings; +import com.android.settings.wifi.details.WifiNetworkDetailsFragment; import com.android.settings.wifi.p2p.WifiP2pSettings; import com.android.settings.wifi.savedaccesspoints2.SavedAccessPointsWifiSettings2; import com.android.settings.wifi.tether.WifiTetherSettings; @@ -173,6 +174,7 @@ public class SettingsGateway { AdvancedConnectedDeviceDashboardFragment.class.getName(), CreateShortcut.class.getName(), WifiSettings.class.getName(), + WifiNetworkDetailsFragment.class.getName(), ConfigureWifiSettings.class.getName(), SavedAccessPointsWifiSettings2.class.getName(), AllInOneTetherSettings.class.getName(), diff --git a/src/com/android/settings/network/NetworkProviderSettings.java b/src/com/android/settings/network/NetworkProviderSettings.java index fefae9ee98f..12d2f5231d1 100644 --- a/src/com/android/settings/network/NetworkProviderSettings.java +++ b/src/com/android/settings/network/NetworkProviderSettings.java @@ -71,7 +71,7 @@ import com.android.settings.wifi.WifiConnectListener; import com.android.settings.wifi.WifiDialog2; import com.android.settings.wifi.WifiPickerTrackerHelper; import com.android.settings.wifi.WifiUtils; -import com.android.settings.wifi.details2.WifiNetworkDetailsFragment2; +import com.android.settings.wifi.details.WifiNetworkDetailsFragment; import com.android.settings.wifi.dpp.WifiDppUtils; import com.android.settingslib.HelpUtils; import com.android.settingslib.RestrictedLockUtils; @@ -929,11 +929,11 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment : context.getText(R.string.pref_title_network_details); final Bundle bundle = new Bundle(); - bundle.putString(WifiNetworkDetailsFragment2.KEY_CHOSEN_WIFIENTRY_KEY, wifiEntry.getKey()); + bundle.putString(WifiNetworkDetailsFragment.KEY_CHOSEN_WIFIENTRY_KEY, wifiEntry.getKey()); new SubSettingLauncher(context) .setTitleText(title) - .setDestination(WifiNetworkDetailsFragment2.class.getName()) + .setDestination(WifiNetworkDetailsFragment.class.getName()) .setArguments(bundle) .setSourceMetricsCategory(getMetricsCategory()) .launch(); @@ -1184,7 +1184,7 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment private void launchConfigNewNetworkFragment(WifiEntry wifiEntry) { final Bundle bundle = new Bundle(); - bundle.putString(WifiNetworkDetailsFragment2.KEY_CHOSEN_WIFIENTRY_KEY, + bundle.putString(WifiNetworkDetailsFragment.KEY_CHOSEN_WIFIENTRY_KEY, wifiEntry.getKey()); new SubSettingLauncher(getContext()) .setTitleText(wifiEntry.getTitle()) diff --git a/src/com/android/settings/panel/InternetConnectivityPanel.java b/src/com/android/settings/panel/InternetConnectivityPanel.java deleted file mode 100644 index ae6f2e0f59e..00000000000 --- a/src/com/android/settings/panel/InternetConnectivityPanel.java +++ /dev/null @@ -1,425 +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 androidx.lifecycle.Lifecycle.Event.ON_PAUSE; -import static androidx.lifecycle.Lifecycle.Event.ON_RESUME; - -import android.app.settings.SettingsEnums; -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; -import android.net.Uri; -import android.net.wifi.ScanResult; -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; -import android.telephony.TelephonyManager; -import android.text.TextUtils; -import android.util.Log; - -import androidx.annotation.VisibleForTesting; -import androidx.lifecycle.LifecycleObserver; -import androidx.lifecycle.OnLifecycleEvent; - -import com.android.settings.R; -import com.android.settings.Utils; -import com.android.settings.network.AirplaneModePreferenceController; -import com.android.settings.network.InternetUpdater; -import com.android.settings.network.ProviderModelSliceHelper; -import com.android.settings.network.SubscriptionsChangeListener; -import com.android.settings.network.telephony.DataConnectivityListener; -import com.android.settings.slices.CustomSliceRegistry; - -import java.util.ArrayList; -import java.util.List; - -/** - * Represents the Internet Connectivity Panel. - */ -public class InternetConnectivityPanel implements PanelContent, LifecycleObserver, - InternetUpdater.InternetChangeListener, DataConnectivityListener.Client, - SubscriptionsChangeListener.SubscriptionsChangeListenerClient { - private static final String TAG = "InternetConnectivityPanel"; - private static final int SUBTITLE_TEXT_NONE = -1; - 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 = - R.string.wifi_empty_list_wifi_on; - private static final int SUBTITLE_TEXT_NON_CARRIER_NETWORK_UNAVAILABLE = - R.string.non_carrier_network_unavailable; - private static final int SUBTITLE_TEXT_ALL_CARRIER_NETWORK_UNAVAILABLE = - R.string.all_network_unavailable; - - private final Context mContext; - private final WifiManager mWifiManager; - private final IntentFilter mWifiStateFilter; - private final NetworkProviderTelephonyCallback mTelephonyCallback; - private final BroadcastReceiver mWifiStateReceiver = new BroadcastReceiver() { - @Override - public void onReceive(Context context, Intent intent) { - if (intent == null) { - return; - } - - if (TextUtils.equals(intent.getAction(), WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)) { - updateProgressBar(); - updatePanelTitle(); - return; - } - - if (TextUtils.equals(intent.getAction(), WifiManager.NETWORK_STATE_CHANGED_ACTION)) { - updateProgressBar(); - updatePanelTitle(); - } - } - }; - - @VisibleForTesting - boolean mIsProviderModelEnabled; - @VisibleForTesting - InternetUpdater mInternetUpdater; - @VisibleForTesting - ProviderModelSliceHelper mProviderModelSliceHelper; - - private int mSubtitle = SUBTITLE_TEXT_NONE; - private PanelContentCallback mCallback; - private TelephonyManager mTelephonyManager; - private SubscriptionsChangeListener mSubscriptionsListener; - private DataConnectivityListener mConnectivityListener; - private int mDefaultDataSubid = SubscriptionManager.INVALID_SUBSCRIPTION_ID; - - // Wi-Fi scanning progress bar - protected HandlerInjector mHandlerInjector; - protected boolean mIsProgressBarVisible; - protected boolean mIsScanningSubTitleShownOnce; - protected Runnable mHideProgressBarRunnable = () -> { - setProgressBarVisible(false); - }; - protected Runnable mHideScanningSubTitleRunnable = () -> { - mIsScanningSubTitleShownOnce = true; - updatePanelTitle(); - }; - - /** - * Wrapper for testing compatibility. - */ - @VisibleForTesting - static class HandlerInjector { - protected final Handler mHandler; - - HandlerInjector(Context context) { - mHandler = context.getMainThreadHandler(); - } - - public void postDelay(Runnable runnable) { - mHandler.postDelayed(runnable, 2000 /* delay millis */); - } - - public void removeCallbacks(Runnable runnable) { - mHandler.removeCallbacks(runnable); - } - } - - private InternetConnectivityPanel(Context context) { - mContext = context.getApplicationContext(); - mHandlerInjector = new HandlerInjector(context); - mIsProviderModelEnabled = Utils.isProviderModelEnabled(mContext); - mInternetUpdater = new InternetUpdater(context, null /* Lifecycle */, this); - - mSubscriptionsListener = new SubscriptionsChangeListener(context, this); - mConnectivityListener = new DataConnectivityListener(context, this); - mTelephonyCallback = new NetworkProviderTelephonyCallback(); - mDefaultDataSubid = getDefaultDataSubscriptionId(); - mTelephonyManager = mContext.getSystemService(TelephonyManager.class); - - mWifiManager = mContext.getSystemService(WifiManager.class); - mWifiStateFilter = new IntentFilter(WifiManager.NETWORK_STATE_CHANGED_ACTION); - mWifiStateFilter.addAction(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION); - - mProviderModelSliceHelper = new ProviderModelSliceHelper(mContext, null); - } - - /** create the panel */ - public static InternetConnectivityPanel create(Context context) { - return new InternetConnectivityPanel(context); - } - - /** @OnLifecycleEvent(ON_RESUME) */ - @OnLifecycleEvent(ON_RESUME) - public void onResume() { - if (!mIsProviderModelEnabled) { - return; - } - mInternetUpdater.onResume(); - mSubscriptionsListener.start(); - mConnectivityListener.start(); - mTelephonyManager.registerTelephonyCallback( - new HandlerExecutor(new Handler(Looper.getMainLooper())), mTelephonyCallback); - mContext.registerReceiver(mWifiStateReceiver, mWifiStateFilter); - updateProgressBar(); - updatePanelTitle(); - } - - /** @OnLifecycleEvent(ON_PAUSE) */ - @OnLifecycleEvent(ON_PAUSE) - public void onPause() { - if (!mIsProviderModelEnabled) { - return; - } - mInternetUpdater.onPause(); - mSubscriptionsListener.stop(); - mConnectivityListener.stop(); - mTelephonyManager.unregisterTelephonyCallback(mTelephonyCallback); - mContext.unregisterReceiver(mWifiStateReceiver); - mHandlerInjector.removeCallbacks(mHideProgressBarRunnable); - mHandlerInjector.removeCallbacks(mHideScanningSubTitleRunnable); - } - - /** - * @return a string for the title of the Panel. - */ - @Override - public CharSequence getTitle() { - if (mIsProviderModelEnabled) { - return mContext.getText(mInternetUpdater.isAirplaneModeOn() - ? R.string.airplane_mode : R.string.provider_internet_settings); - } - return mContext.getText(R.string.internet_connectivity_panel_title); - } - - /** - * @return a string for the subtitle of the Panel. - */ - @Override - public CharSequence getSubTitle() { - if (mIsProviderModelEnabled && mSubtitle != SUBTITLE_TEXT_NONE) { - return mContext.getText(mSubtitle); - } - return null; - } - - @Override - public List getSlices() { - final List uris = new ArrayList<>(); - if (mIsProviderModelEnabled) { - uris.add(CustomSliceRegistry.PROVIDER_MODEL_SLICE_URI); - } else { - uris.add(CustomSliceRegistry.WIFI_SLICE_URI); - uris.add(CustomSliceRegistry.MOBILE_DATA_SLICE_URI); - uris.add(AirplaneModePreferenceController.SLICE_URI); - } - return uris; - } - - @Override - public Intent getSeeMoreIntent() { - // Disable the see more button for provider model design. - if (mIsProviderModelEnabled) { - return null; - } - - // Don't remove the see more intent for non-provider model design. This intent will be - // used when isCustomizedButtonUsed() returns false. - return new Intent(Settings.ACTION_WIRELESS_SETTINGS) - .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - } - - @Override - public boolean isProgressBarVisible() { - return mIsProgressBarVisible; - } - - @Override - public int getMetricsCategory() { - return SettingsEnums.PANEL_INTERNET_CONNECTIVITY; - } - - @Override - public void registerCallback(PanelContentCallback callback) { - mCallback = callback; - } - - /** - * Called when airplane mode state is changed. - */ - @Override - public void onAirplaneModeChanged(boolean isAirplaneModeOn) { - log("onAirplaneModeChanged: isAirplaneModeOn:" + isAirplaneModeOn); - updatePanelTitle(); - } - - /** - * Called when Wi-Fi enabled is changed. - */ - @Override - public void onWifiEnabledChanged(boolean enabled) { - log("onWifiEnabledChanged: enabled:" + enabled); - updatePanelTitle(); - } - - @Override - public void onSubscriptionsChanged() { - final int defaultDataSubId = getDefaultDataSubscriptionId(); - log("onSubscriptionsChanged: defaultDataSubId:" + defaultDataSubId); - if (mDefaultDataSubid == defaultDataSubId) { - return; - } - if (SubscriptionManager.isUsableSubscriptionId(defaultDataSubId)) { - mTelephonyManager.unregisterTelephonyCallback(mTelephonyCallback); - mTelephonyManager.registerTelephonyCallback( - new HandlerExecutor(new Handler(Looper.getMainLooper())), mTelephonyCallback); - } - updatePanelTitle(); - } - - @Override - public void onDataConnectivityChange() { - log("onDataConnectivityChange"); - updatePanelTitle(); - } - - @VisibleForTesting - void updatePanelTitle() { - if (mCallback == null) { - return; - } - updateSubtitleText(); - mCallback.onHeaderChanged(); - } - - @VisibleForTesting - int getDefaultDataSubscriptionId() { - return SubscriptionManager.getDefaultDataSubscriptionId(); - } - - 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 (mInternetUpdater.isAirplaneModeOn()) { - return; - } - - final List wifiList = mWifiManager.getScanResults(); - if (wifiList != null && wifiList.size() != 0) { - // When the Wi-Fi scan result is not empty - // Sub-Title: Tap a network to connect - mSubtitle = SUBTITLE_TEXT_TAP_A_NETWORK_TO_CONNECT; - return; - } - - if (!mIsScanningSubTitleShownOnce && 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 - // - while Wi-Fi on + no Wi-Fi item + mobile data off - // show all_network_unavailable: - // - while Wi-Fi on + no Wi-Fi item + no carrier item - // - while Wi-Fi on + no Wi-Fi item + service is out of service - // - while Wi-Fi on + no Wi-Fi item + mobile data on + no carrier data. - log("No Wi-Fi item."); - if (!mProviderModelSliceHelper.hasCarrier() - || (!mProviderModelSliceHelper.isVoiceStateInService() - && !mProviderModelSliceHelper.isDataStateInService())) { - log("no carrier or service is out of service."); - mSubtitle = SUBTITLE_TEXT_ALL_CARRIER_NETWORK_UNAVAILABLE; - return; - } - if (!mProviderModelSliceHelper.isMobileDataEnabled()) { - log("mobile data off"); - mSubtitle = SUBTITLE_TEXT_NON_CARRIER_NETWORK_UNAVAILABLE; - return; - } - if (!mProviderModelSliceHelper.isDataSimActive()) { - log("no carrier data."); - mSubtitle = SUBTITLE_TEXT_ALL_CARRIER_NETWORK_UNAVAILABLE; - return; - } - mSubtitle = SUBTITLE_TEXT_NON_CARRIER_NETWORK_UNAVAILABLE; - } - - protected void updateProgressBar() { - if (mWifiManager == null || !mInternetUpdater.isWifiEnabled()) { - setProgressBarVisible(false); - return; - } - - setProgressBarVisible(true); - List wifiScanResults = mWifiManager.getScanResults(); - if (wifiScanResults != null && wifiScanResults.size() > 0) { - mHandlerInjector.postDelay(mHideProgressBarRunnable); - } else if (!mIsScanningSubTitleShownOnce) { - mHandlerInjector.postDelay(mHideScanningSubTitleRunnable); - } - } - - protected void setProgressBarVisible(boolean visible) { - if (mIsProgressBarVisible == visible) { - return; - } - mIsProgressBarVisible = visible; - - if (mCallback == null) { - return; - } - mCallback.onProgressBarVisibleChanged(); - updatePanelTitle(); - } - - private class NetworkProviderTelephonyCallback extends TelephonyCallback implements - TelephonyCallback.DataConnectionStateListener, - TelephonyCallback.ServiceStateListener { - @Override - public void onServiceStateChanged(ServiceState state) { - log("onServiceStateChanged voiceState=" + state.getState() - + " dataState=" + state.getDataRegistrationState()); - updatePanelTitle(); - } - - @Override - public void onDataConnectionStateChanged(int state, int networkType) { - log("onDataConnectionStateChanged: networkType=" + networkType + " state=" + state); - updatePanelTitle(); - } - } - - private static void log(String s) { - Log.d(TAG, s); - } -} diff --git a/src/com/android/settings/panel/PanelFeatureProviderImpl.java b/src/com/android/settings/panel/PanelFeatureProviderImpl.java index ca30952a72d..a73881b4cc1 100644 --- a/src/com/android/settings/panel/PanelFeatureProviderImpl.java +++ b/src/com/android/settings/panel/PanelFeatureProviderImpl.java @@ -17,11 +17,14 @@ package com.android.settings.panel; import android.content.Context; +import android.content.Intent; import android.os.Bundle; import android.provider.Settings; public class PanelFeatureProviderImpl implements PanelFeatureProvider { + private static final String SYSTEMUI_PACKAGE_NAME = "com.android.systemui"; + @Override public PanelContent getPanel(Context context, Bundle bundle) { if (context == null) { @@ -35,7 +38,12 @@ public class PanelFeatureProviderImpl implements PanelFeatureProvider { switch (panelType) { case Settings.Panel.ACTION_INTERNET_CONNECTIVITY: - return InternetConnectivityPanel.create(context); + // Redirect to the internet dialog in SystemUI. + Intent intent = new Intent(Settings.Panel.ACTION_INTERNET_CONNECTIVITY); + intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND) + .setPackage(SYSTEMUI_PACKAGE_NAME); + context.sendBroadcast(intent); + return null; case Settings.Panel.ACTION_NFC: return NfcPanel.create(context); case Settings.Panel.ACTION_WIFI: diff --git a/src/com/android/settings/wifi/ConfigureWifiEntryFragment.java b/src/com/android/settings/wifi/ConfigureWifiEntryFragment.java index d2f50903698..469ca1dd9e7 100644 --- a/src/com/android/settings/wifi/ConfigureWifiEntryFragment.java +++ b/src/com/android/settings/wifi/ConfigureWifiEntryFragment.java @@ -38,7 +38,7 @@ import androidx.annotation.VisibleForTesting; import com.android.settings.R; import com.android.settings.core.InstrumentedFragment; import com.android.settings.overlay.FeatureFactory; -import com.android.settings.wifi.details2.WifiNetworkDetailsFragment2; +import com.android.settings.wifi.details.WifiNetworkDetailsFragment; import com.android.wifitrackerlib.NetworkDetailsTracker; import com.android.wifitrackerlib.WifiEntry; @@ -238,6 +238,6 @@ public class ConfigureWifiEntryFragment extends InstrumentedFragment implements MAX_SCAN_AGE_MILLIS, SCAN_INTERVAL_MILLIS, getArguments().getString( - WifiNetworkDetailsFragment2.KEY_CHOSEN_WIFIENTRY_KEY)); + WifiNetworkDetailsFragment.KEY_CHOSEN_WIFIENTRY_KEY)); } } diff --git a/src/com/android/settings/wifi/WifiConnectionPreferenceController.java b/src/com/android/settings/wifi/WifiConnectionPreferenceController.java index 3b2669cefda..fc2f8f15415 100644 --- a/src/com/android/settings/wifi/WifiConnectionPreferenceController.java +++ b/src/com/android/settings/wifi/WifiConnectionPreferenceController.java @@ -34,7 +34,7 @@ import androidx.preference.PreferenceScreen; import com.android.settings.R; import com.android.settings.core.SubSettingLauncher; import com.android.settings.overlay.FeatureFactory; -import com.android.settings.wifi.details2.WifiNetworkDetailsFragment2; +import com.android.settings.wifi.details.WifiNetworkDetailsFragment; import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.wifi.WifiEntryPreference; @@ -165,11 +165,11 @@ public class WifiConnectionPreferenceController extends AbstractPreferenceContro mPreference.setOrder(order); mPreference.setOnPreferenceClickListener(pref -> { final Bundle args = new Bundle(); - args.putString(WifiNetworkDetailsFragment2.KEY_CHOSEN_WIFIENTRY_KEY, + args.putString(WifiNetworkDetailsFragment.KEY_CHOSEN_WIFIENTRY_KEY, wifiEntry.getKey()); new SubSettingLauncher(mPrefContext) .setTitleRes(R.string.pref_title_network_details) - .setDestination(WifiNetworkDetailsFragment2.class.getName()) + .setDestination(WifiNetworkDetailsFragment.class.getName()) .setArguments(args) .setSourceMetricsCategory(mMetricsCategory) .launch(); diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java index 59f65041c6e..c4b4d5928d1 100644 --- a/src/com/android/settings/wifi/WifiSettings.java +++ b/src/com/android/settings/wifi/WifiSettings.java @@ -67,7 +67,7 @@ import com.android.settings.location.WifiScanningFragment; import com.android.settings.overlay.FeatureFactory; import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.widget.MainSwitchBarController; -import com.android.settings.wifi.details2.WifiNetworkDetailsFragment2; +import com.android.settings.wifi.details.WifiNetworkDetailsFragment; import com.android.settings.wifi.dpp.WifiDppUtils; import com.android.settingslib.HelpUtils; import com.android.settingslib.RestrictedLockUtils; @@ -844,11 +844,11 @@ public class WifiSettings extends RestrictedSettingsFragment : context.getText(R.string.pref_title_network_details); final Bundle bundle = new Bundle(); - bundle.putString(WifiNetworkDetailsFragment2.KEY_CHOSEN_WIFIENTRY_KEY, wifiEntry.getKey()); + bundle.putString(WifiNetworkDetailsFragment.KEY_CHOSEN_WIFIENTRY_KEY, wifiEntry.getKey()); new SubSettingLauncher(context) .setTitleText(title) - .setDestination(WifiNetworkDetailsFragment2.class.getName()) + .setDestination(WifiNetworkDetailsFragment.class.getName()) .setArguments(bundle) .setSourceMetricsCategory(getMetricsCategory()) .launch(); @@ -1121,7 +1121,7 @@ public class WifiSettings extends RestrictedSettingsFragment private void launchConfigNewNetworkFragment(WifiEntry wifiEntry) { final Bundle bundle = new Bundle(); - bundle.putString(WifiNetworkDetailsFragment2.KEY_CHOSEN_WIFIENTRY_KEY, + bundle.putString(WifiNetworkDetailsFragment.KEY_CHOSEN_WIFIENTRY_KEY, wifiEntry.getKey()); new SubSettingLauncher(getContext()) .setTitleText(wifiEntry.getTitle()) diff --git a/src/com/android/settings/wifi/details2/WifiNetworkDetailsFragment2.java b/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java similarity index 93% rename from src/com/android/settings/wifi/details2/WifiNetworkDetailsFragment2.java rename to src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java index 6bc510d6b16..dd0c20a4765 100644 --- a/src/com/android/settings/wifi/details2/WifiNetworkDetailsFragment2.java +++ b/src/com/android/settings/wifi/details/WifiNetworkDetailsFragment.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2019 The Android Open Source Project + * 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. @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.android.settings.wifi.details2; +package com.android.settings.wifi.details; import static com.android.settings.wifi.WifiSettings.WIFI_DIALOG_ID; @@ -45,6 +45,13 @@ import com.android.settings.dashboard.RestrictedDashboardFragment; import com.android.settings.overlay.FeatureFactory; import com.android.settings.wifi.WifiConfigUiBase2; import com.android.settings.wifi.WifiDialog2; +import com.android.settings.wifi.details2.AddDevicePreferenceController2; +import com.android.settings.wifi.details2.WifiAutoConnectPreferenceController2; +import com.android.settings.wifi.details2.WifiDetailPreferenceController2; +import com.android.settings.wifi.details2.WifiMeteredPreferenceController2; +import com.android.settings.wifi.details2.WifiPrivacyPreferenceController2; +import com.android.settings.wifi.details2.WifiSecondSummaryController2; +import com.android.settings.wifi.details2.WifiSubscriptionDetailPreferenceController2; import com.android.settingslib.RestrictedLockUtils; import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin; import com.android.settingslib.RestrictedLockUtilsInternal; @@ -63,10 +70,10 @@ import java.util.List; *

The key of {@link WifiEntry} should be saved to the intent Extras when launching this class * in order to properly render this page. */ -public class WifiNetworkDetailsFragment2 extends RestrictedDashboardFragment implements +public class WifiNetworkDetailsFragment extends RestrictedDashboardFragment implements WifiDialog2.WifiDialog2Listener { - private static final String TAG = "WifiNetworkDetailsFrg2"; + private static final String TAG = "WifiNetworkDetailsFrg"; // Key of a Bundle to save/restore the selected WifiEntry public static final String KEY_CHOSEN_WIFIENTRY_KEY = "key_chosen_wifientry_key"; @@ -86,7 +93,7 @@ public class WifiNetworkDetailsFragment2 extends RestrictedDashboardFragment imp @VisibleForTesting List mControllers; - public WifiNetworkDetailsFragment2() { + public WifiNetworkDetailsFragment() { super(UserManager.DISALLOW_CONFIG_WIFI); } diff --git a/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java b/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java index 7bf680da103..f9d0db07b25 100644 --- a/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java +++ b/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java @@ -76,6 +76,7 @@ import com.android.settings.widget.EntityHeaderController; import com.android.settings.wifi.WifiDialog2; import com.android.settings.wifi.WifiDialog2.WifiDialog2Listener; import com.android.settings.wifi.WifiUtils; +import com.android.settings.wifi.details.WifiNetworkDetailsFragment; import com.android.settings.wifi.dpp.WifiDppUtils; import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; @@ -1099,7 +1100,7 @@ public class WifiDetailPreferenceController2 extends AbstractPreferenceControlle refreshPage(); // Refresh the Preferences in fragment. - ((WifiNetworkDetailsFragment2) mFragment).refreshPreferences(); + ((WifiNetworkDetailsFragment) mFragment).refreshPreferences(); } /** diff --git a/src/com/android/settings/wifi/savedaccesspoints2/SavedAccessPointsWifiSettings2.java b/src/com/android/settings/wifi/savedaccesspoints2/SavedAccessPointsWifiSettings2.java index e579ad73dbb..1443e3247cf 100644 --- a/src/com/android/settings/wifi/savedaccesspoints2/SavedAccessPointsWifiSettings2.java +++ b/src/com/android/settings/wifi/savedaccesspoints2/SavedAccessPointsWifiSettings2.java @@ -39,7 +39,7 @@ import com.android.settings.R; import com.android.settings.core.SubSettingLauncher; import com.android.settings.dashboard.DashboardFragment; import com.android.settings.wifi.WifiSettings; -import com.android.settings.wifi.details2.WifiNetworkDetailsFragment2; +import com.android.settings.wifi.details.WifiNetworkDetailsFragment; import com.android.wifitrackerlib.SavedNetworkTracker; import java.time.Clock; @@ -126,7 +126,7 @@ public class SavedAccessPointsWifiSettings2 extends DashboardFragment } /** - * Shows {@link WifiNetworkDetailsFragment2} for assigned key of {@link WifiEntry}. + * Shows {@link WifiNetworkDetailsFragment} for assigned key of {@link WifiEntry}. */ public void showWifiPage(@NonNull String key, CharSequence title) { removeDialog(WifiSettings.WIFI_DIALOG_ID); @@ -137,11 +137,11 @@ public class SavedAccessPointsWifiSettings2 extends DashboardFragment } final Bundle bundle = new Bundle(); - bundle.putString(WifiNetworkDetailsFragment2.KEY_CHOSEN_WIFIENTRY_KEY, key); + bundle.putString(WifiNetworkDetailsFragment.KEY_CHOSEN_WIFIENTRY_KEY, key); new SubSettingLauncher(getContext()) .setTitleText(title) - .setDestination(WifiNetworkDetailsFragment2.class.getName()) + .setDestination(WifiNetworkDetailsFragment.class.getName()) .setArguments(bundle) .setSourceMetricsCategory(getMetricsCategory()) .launch(); diff --git a/src/com/android/settings/wifi/slice/WifiSlice.java b/src/com/android/settings/wifi/slice/WifiSlice.java index 75d2c669954..f6604dd6f6e 100644 --- a/src/com/android/settings/wifi/slice/WifiSlice.java +++ b/src/com/android/settings/wifi/slice/WifiSlice.java @@ -50,7 +50,7 @@ import com.android.settings.slices.SliceBuilderUtils; import com.android.settings.wifi.WifiDialogActivity; import com.android.settings.wifi.WifiSettings; import com.android.settings.wifi.WifiUtils; -import com.android.settings.wifi.details2.WifiNetworkDetailsFragment2; +import com.android.settings.wifi.details.WifiNetworkDetailsFragment; import com.android.wifitrackerlib.WifiEntry; import java.util.Arrays; @@ -200,11 +200,11 @@ public class WifiSlice implements CustomSliceable { if (wifiSliceItem.getConnectedState() != WifiEntry.CONNECTED_STATE_DISCONNECTED) { final Bundle bundle = new Bundle(); - bundle.putString(WifiNetworkDetailsFragment2.KEY_CHOSEN_WIFIENTRY_KEY, + bundle.putString(WifiNetworkDetailsFragment.KEY_CHOSEN_WIFIENTRY_KEY, wifiSliceItem.getKey()); final Intent intent = new SubSettingLauncher(mContext) .setTitleRes(R.string.pref_title_network_details) - .setDestination(WifiNetworkDetailsFragment2.class.getName()) + .setDestination(WifiNetworkDetailsFragment.class.getName()) .setArguments(bundle) .setSourceMetricsCategory(SettingsEnums.WIFI) .toIntent(); diff --git a/tests/robotests/src/com/android/settings/wifi/details2/WifiNetworkDetailsFragment2Test.java b/tests/robotests/src/com/android/settings/wifi/details/WifiNetworkDetailsFragmentTest.java similarity index 91% rename from tests/robotests/src/com/android/settings/wifi/details2/WifiNetworkDetailsFragment2Test.java rename to tests/robotests/src/com/android/settings/wifi/details/WifiNetworkDetailsFragmentTest.java index fdd6295ab65..4f742549f24 100644 --- a/tests/robotests/src/com/android/settings/wifi/details2/WifiNetworkDetailsFragment2Test.java +++ b/tests/robotests/src/com/android/settings/wifi/details/WifiNetworkDetailsFragmentTest.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2020 The Android Open Source Project + * 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. @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.android.settings.wifi.details2; +package com.android.settings.wifi.details; import static com.android.settings.wifi.WifiSettings.WIFI_DIALOG_ID; @@ -54,9 +54,9 @@ import org.robolectric.RuntimeEnvironment; import java.util.ArrayList; @RunWith(RobolectricTestRunner.class) -public class WifiNetworkDetailsFragment2Test { +public class WifiNetworkDetailsFragmentTest { - final String TEST_PREFERENCE_KEY = "TEST_PREFERENCE_KEY"; + private static final String TEST_PREFERENCE_KEY = "TEST_PREFERENCE_KEY"; @Mock WifiEntry mWifiEntry; @@ -64,7 +64,7 @@ public class WifiNetworkDetailsFragment2Test { NetworkDetailsTracker mNetworkDetailsTracker; @Mock Menu mMenu; - private WifiNetworkDetailsFragment2 mFragment; + private WifiNetworkDetailsFragment mFragment; @Before public void setUp() { @@ -72,7 +72,7 @@ public class WifiNetworkDetailsFragment2Test { doReturn(mWifiEntry).when(mNetworkDetailsTracker).getWifiEntry(); doReturn(true).when(mWifiEntry).isSaved(); - mFragment = new WifiNetworkDetailsFragment2(); + mFragment = new WifiNetworkDetailsFragment(); mFragment.mNetworkDetailsTracker = mNetworkDetailsTracker; } @@ -165,8 +165,8 @@ public class WifiNetworkDetailsFragment2Test { verify(controller).displayPreference(screen); } - // Fake WifiNetworkDetailsFragment2 to override the protected method as public. - public class FakeFragment extends WifiNetworkDetailsFragment2 { + // Fake WifiNetworkDetailsFragment to override the protected method as public. + public static class FakeFragment extends WifiNetworkDetailsFragment { @Override public void addPreferenceController(AbstractPreferenceController controller) { @@ -179,7 +179,7 @@ public class WifiNetworkDetailsFragment2Test { } } - public class TestController extends BasePreferenceController { + public static class TestController extends BasePreferenceController { public TestController() { super(RuntimeEnvironment.application, TEST_PREFERENCE_KEY); diff --git a/tests/robotests/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2Test.java b/tests/robotests/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2Test.java index 7354d85bc7a..6a098bc9ead 100644 --- a/tests/robotests/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2Test.java +++ b/tests/robotests/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2Test.java @@ -76,6 +76,7 @@ import com.android.settings.Utils; import com.android.settings.testutils.shadow.ShadowDevicePolicyManager; import com.android.settings.testutils.shadow.ShadowEntityHeaderController; import com.android.settings.widget.EntityHeaderController; +import com.android.settings.wifi.details.WifiNetworkDetailsFragment; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.utils.StringUtil; @@ -145,7 +146,7 @@ public class WifiDetailPreferenceController2Test { @Mock private WifiInfo mMockWifiInfo; @Mock - private WifiNetworkDetailsFragment2 mMockFragment; + private WifiNetworkDetailsFragment mMockFragment; @Mock private WifiManager mMockWifiManager; @Mock diff --git a/tests/unit/src/com/android/settings/panel/InternetConnectivityPanelTest.java b/tests/unit/src/com/android/settings/panel/InternetConnectivityPanelTest.java deleted file mode 100644 index 30a272950f5..00000000000 --- a/tests/unit/src/com/android/settings/panel/InternetConnectivityPanelTest.java +++ /dev/null @@ -1,341 +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.panel; - -import static com.google.common.truth.Truth.assertThat; - -import static org.mockito.Mockito.clearInvocations; -import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import android.content.Context; -import android.net.Uri; -import android.net.wifi.ScanResult; -import android.net.wifi.WifiManager; -import android.os.Handler; - -import androidx.test.core.app.ApplicationProvider; -import androidx.test.ext.junit.runners.AndroidJUnit4; - -import com.android.settings.network.AirplaneModePreferenceController; -import com.android.settings.network.InternetUpdater; -import com.android.settings.network.ProviderModelSliceHelper; -import com.android.settings.slices.CustomSliceRegistry; -import com.android.settings.testutils.ResourcesUtils; - -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; - -import java.util.ArrayList; -import java.util.List; - -@RunWith(AndroidJUnit4.class) -public class InternetConnectivityPanelTest { - - public static final String TITLE_INTERNET = ResourcesUtils.getResourcesString( - ApplicationProvider.getApplicationContext(), "provider_internet_settings"); - public static final String TITLE_APM = ResourcesUtils.getResourcesString( - ApplicationProvider.getApplicationContext(), "airplane_mode"); - 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 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(); - @Mock - Handler mMainThreadHandler; - @Mock - PanelContentCallback mPanelContentCallback; - @Mock - InternetUpdater mInternetUpdater; - @Mock - private WifiManager mWifiManager; - @Mock - private ProviderModelSliceHelper mProviderModelSliceHelper; - - private Context mContext; - private FakeHandlerInjector mFakeHandlerInjector; - private InternetConnectivityPanel mPanel; - - private class FakeHandlerInjector extends InternetConnectivityPanel.HandlerInjector { - - private Runnable mRunnable; - - FakeHandlerInjector(Context context) { - super(context); - } - - @Override - public void postDelay(Runnable runnable) { - mRunnable = runnable; - } - - public Runnable getRunnable() { - return mRunnable; - } - } - - @Before - public void setUp() { - mContext = spy(ApplicationProvider.getApplicationContext()); - mFakeHandlerInjector = new FakeHandlerInjector(mContext); - when(mContext.getApplicationContext()).thenReturn(mContext); - when(mContext.getMainThreadHandler()).thenReturn(mMainThreadHandler); - when(mContext.getSystemService(WifiManager.class)).thenReturn(mWifiManager); - - mPanel = InternetConnectivityPanel.create(mContext); - mPanel.registerCallback(mPanelContentCallback); - mPanel.mIsProviderModelEnabled = true; - mPanel.mInternetUpdater = mInternetUpdater; - mPanel.mProviderModelSliceHelper = mProviderModelSliceHelper; - mPanel.mHandlerInjector = mFakeHandlerInjector; - } - - @Test - public void getTitle_apmOff_shouldBeInternet() { - doReturn(false).when(mInternetUpdater).isAirplaneModeOn(); - - assertThat(mPanel.getTitle()).isEqualTo(TITLE_INTERNET); - } - - @Test - public void getTitle_apmOn_shouldBeApm() { - doReturn(true).when(mInternetUpdater).isAirplaneModeOn(); - - assertThat(mPanel.getTitle()).isEqualTo(TITLE_APM); - } - - @Test - public void getSubTitle_apmOnWifiOff_shouldBeNull() { - doReturn(true).when(mInternetUpdater).isAirplaneModeOn(); - doReturn(false).when(mInternetUpdater).isWifiEnabled(); - - assertThat(mPanel.getSubTitle()).isNull(); - } - - @Test - 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_TEXT_WIFI_IS_OFF); - } - - @Test - public void getSubTitle_apmOffWifiOnNoWifiListHasCarrierData_NonCarrierNetworkUnavailable() { - List wifiList = new ArrayList(); - mockCondition(false, true, true, true, true, true, wifiList); - - mPanel.updatePanelTitle(); - - assertThat(mPanel.getSubTitle()).isEqualTo(SUBTITLE_NON_CARRIER_NETWORK_UNAVAILABLE); - } - - @Test - public void getSubTitle_apmOffWifiOnNoWifiListNoCarrierItem_AllNetworkUnavailable() { - List wifiList = new ArrayList(); - mockCondition(false, false, false, false, false, true, wifiList); - - mPanel.updatePanelTitle(); - - assertThat(mPanel.getSubTitle()).isEqualTo(SUBTITLE_ALL_NETWORK_UNAVAILABLE); - } - - @Test - public void getSubTitle_apmOffWifiOnNoWifiListNoDataSimActive_AllNetworkUnavailable() { - List wifiList = new ArrayList(); - mockCondition(false, true, false, true, true, true, wifiList); - - mPanel.updatePanelTitle(); - - assertThat(mPanel.getSubTitle()).isEqualTo(SUBTITLE_ALL_NETWORK_UNAVAILABLE); - } - - @Test - public void getSubTitle_apmOffWifiOnNoWifiListNoService_AllNetworkUnavailable() { - List wifiList = new ArrayList(); - mockCondition(false, true, false, true, false, true, wifiList); - - mPanel.updatePanelTitle(); - - assertThat(mPanel.getSubTitle()).isEqualTo(SUBTITLE_ALL_NETWORK_UNAVAILABLE); - } - - @Test - public void getSubTitle_apmOffWifiOnTwoWifiItemsNoCarrierData_tapANetworkToConnect() { - List wifiList = new ArrayList(); - wifiList.add(new ScanResult()); - wifiList.add(new ScanResult()); - mockCondition(false, true, false, true, true, true, wifiList); - - mPanel.updatePanelTitle(); - - assertThat(mPanel.getSubTitle()).isEqualTo(SUBTITLE_TEXT_TAP_A_NETWORK_TO_CONNECT); - } - - @Test - public void getSlices_providerModelDisabled_containsNecessarySlices() { - mPanel.mIsProviderModelEnabled = false; - 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() { - List uris = mPanel.getSlices(); - - assertThat(uris).containsExactly(CustomSliceRegistry.PROVIDER_MODEL_SLICE_URI); - } - - @Test - public void getSeeMoreIntent_providerModelDisabled_shouldNotNull() { - mPanel.mIsProviderModelEnabled = false; - - assertThat(mPanel.getSeeMoreIntent()).isNotNull(); - } - - @Test - public void getSeeMoreIntent_providerModelEnabled_shouldBeNull() { - mPanel.mIsProviderModelEnabled = true; - - assertThat(mPanel.getSeeMoreIntent()).isNull(); - } - - @Test - public void updatePanelTitle_onHeaderChanged() { - clearInvocations(mPanelContentCallback); - - mPanel.updatePanelTitle(); - - verify(mPanelContentCallback).onHeaderChanged(); - } - - @Test - public void updateProgressBar_wifiDisabled_hideProgress() { - mPanel.mIsProgressBarVisible = true; - doReturn(false).when(mInternetUpdater).isWifiEnabled(); - clearInvocations(mPanelContentCallback); - - mPanel.updateProgressBar(); - - assertThat(mPanel.isProgressBarVisible()).isFalse(); - verify(mPanelContentCallback).onProgressBarVisibleChanged(); - } - - @Test - public void updateProgressBar_noWifiScanResults_showProgressForever() { - mPanel.mIsScanningSubTitleShownOnce = false; - mPanel.mIsProgressBarVisible = false; - doReturn(true).when(mInternetUpdater).isWifiEnabled(); - List noWifiScanResults = new ArrayList<>(); - doReturn(noWifiScanResults).when(mWifiManager).getScanResults(); - clearInvocations(mPanelContentCallback); - - mPanel.updateProgressBar(); - - assertThat(mPanel.mIsProgressBarVisible).isTrue(); - verify(mPanelContentCallback).onProgressBarVisibleChanged(); - verify(mPanelContentCallback).onHeaderChanged(); - - assertThat(mFakeHandlerInjector.getRunnable()) - .isEqualTo(mPanel.mHideScanningSubTitleRunnable); - mFakeHandlerInjector.getRunnable().run(); - assertThat(mPanel.mIsScanningSubTitleShownOnce).isTrue(); - assertThat(mPanel.mIsProgressBarVisible).isTrue(); - } - - @Test - public void updateProgressBar_hasWifiScanResults_showProgressDelayedHide() { - mPanel.mIsProgressBarVisible = false; - doReturn(true).when(mInternetUpdater).isWifiEnabled(); - List hasWifiScanResults = mock(ArrayList.class); - doReturn(1).when(hasWifiScanResults).size(); - doReturn(hasWifiScanResults).when(mWifiManager).getScanResults(); - clearInvocations(mPanelContentCallback); - - mPanel.updateProgressBar(); - - assertThat(mPanel.isProgressBarVisible()).isTrue(); - verify(mPanelContentCallback).onProgressBarVisibleChanged(); - - assertThat(mFakeHandlerInjector.getRunnable()) - .isEqualTo(mPanel.mHideProgressBarRunnable); - mFakeHandlerInjector.getRunnable().run(); - assertThat(mPanel.mIsProgressBarVisible).isFalse(); - } - - @Test - public void setProgressBarVisible_onProgressBarVisibleChanged() { - mPanel.mIsProgressBarVisible = false; - doReturn(true).when(mInternetUpdater).isWifiEnabled(); - clearInvocations(mPanelContentCallback); - - mPanel.setProgressBarVisible(true); - - assertThat(mPanel.mIsProgressBarVisible).isTrue(); - verify(mPanelContentCallback).onProgressBarVisibleChanged(); - verify(mPanelContentCallback).onHeaderChanged(); - } - - private void mockCondition(boolean airplaneMode, boolean hasCarrier, - boolean isDataSimActive, boolean isMobileDataEnabled, boolean isServiceInService, - boolean isWifiEnabled, List wifiItems) { - doReturn(airplaneMode).when(mInternetUpdater).isAirplaneModeOn(); - when(mProviderModelSliceHelper.hasCarrier()).thenReturn(hasCarrier); - when(mProviderModelSliceHelper.isDataSimActive()).thenReturn(isDataSimActive); - when(mProviderModelSliceHelper.isMobileDataEnabled()).thenReturn(isMobileDataEnabled); - when(mProviderModelSliceHelper.isDataStateInService()).thenReturn(isServiceInService); - when(mProviderModelSliceHelper.isVoiceStateInService()).thenReturn(isServiceInService); - doReturn(isWifiEnabled).when(mInternetUpdater).isWifiEnabled(); - doReturn(wifiItems).when(mWifiManager).getScanResults(); - } -} diff --git a/tests/unit/src/com/android/settings/panel/PanelFeatureProviderImplTest.java b/tests/unit/src/com/android/settings/panel/PanelFeatureProviderImplTest.java index 3b61a734af1..a02c054237f 100644 --- a/tests/unit/src/com/android/settings/panel/PanelFeatureProviderImplTest.java +++ b/tests/unit/src/com/android/settings/panel/PanelFeatureProviderImplTest.java @@ -20,7 +20,12 @@ import static com.android.settings.panel.SettingsPanelActivity.KEY_PANEL_TYPE_AR import static com.google.common.truth.Truth.assertThat; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.verify; + import android.content.Context; +import android.content.Intent; import android.os.Bundle; import android.provider.Settings; @@ -36,25 +41,28 @@ public class PanelFeatureProviderImplTest { private static final String TEST_PACKAGENAME = "com.test.packagename"; + private static final String SYSTEMUI_PACKAGE_NAME = "com.android.systemui"; private Context mContext; private PanelFeatureProviderImpl mProvider; private Bundle mBundle; @Before public void setUp() { - mContext = ApplicationProvider.getApplicationContext(); + mContext = spy(ApplicationProvider.getApplicationContext()); mProvider = new PanelFeatureProviderImpl(); mBundle = new Bundle(); mBundle.putString(KEY_MEDIA_PACKAGE_NAME, TEST_PACKAGENAME); } @Test - public void getPanel_internetConnectivityKey_returnsCorrectPanel() { + public void getPanel_internetConnectivityKey_sendsCorrectBroadcast() { mBundle.putString(KEY_PANEL_TYPE_ARGUMENT, Settings.Panel.ACTION_INTERNET_CONNECTIVITY); + mProvider.getPanel(mContext, mBundle); + Intent intent = new Intent(Settings.Panel.ACTION_INTERNET_CONNECTIVITY); + intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND) + .setPackage(SYSTEMUI_PACKAGE_NAME); - final PanelContent panel = mProvider.getPanel(mContext, mBundle); - - assertThat(panel).isInstanceOf(InternetConnectivityPanel.class); + verify(mContext, never()).sendBroadcast(intent); } @Test