Loading src/com/android/settings/wifi/ConfigureWifiSettings.java +2 −6 Original line number Diff line number Diff line Loading @@ -63,10 +63,7 @@ public class ConfigureWifiSettings extends DashboardFragment { @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); int tileLimit = 1; if (mWifiWakeupPreferenceController.isAvailable()) { tileLimit++; } int tileLimit = 2; if (mUseOpenWifiPreferenceController.isAvailable()) { tileLimit++; } Loading @@ -82,8 +79,7 @@ public class ConfigureWifiSettings extends DashboardFragment { protected List<AbstractPreferenceController> getPreferenceControllers(Context context) { final NetworkScoreManagerWrapper networkScoreManagerWrapper = new NetworkScoreManagerWrapper(context.getSystemService(NetworkScoreManager.class)); mWifiWakeupPreferenceController = new WifiWakeupPreferenceController( context, getLifecycle()); mWifiWakeupPreferenceController = new WifiWakeupPreferenceController(context); mUseOpenWifiPreferenceController = new UseOpenWifiPreferenceController(context, this, networkScoreManagerWrapper, getLifecycle()); final WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE); Loading src/com/android/settings/wifi/WifiSettings.java +4 −13 Original line number Diff line number Diff line Loading @@ -911,17 +911,10 @@ public class WifiSettings extends RestrictedSettingsFragment private void setAdditionalSettingsSummaries() { mAdditionalSettingsPreferenceCategory.addPreference(mConfigureWifiSettingsPreference); final int defaultWakeupAvailable = getResources().getInteger( com.android.internal.R.integer.config_wifi_wakeup_available); boolean wifiWakeupAvailable = Settings.Global.getInt( getContentResolver(), Settings.Global.WIFI_WAKEUP_AVAILABLE, defaultWakeupAvailable) == 1; if (wifiWakeupAvailable) { mConfigureWifiSettingsPreference.setSummary(getString( isWifiWakeupEnabled() ? R.string.wifi_configure_settings_preference_summary_wakeup_on : R.string.wifi_configure_settings_preference_summary_wakeup_off)); } int numSavedNetworks = mWifiTracker.getNumSavedNetworks(); if (numSavedNetworks > 0) { mAdditionalSettingsPreferenceCategory.addPreference(mSavedNetworksPreference); Loading @@ -942,8 +935,6 @@ public class WifiSettings extends RestrictedSettingsFragment Settings.Global.WIFI_SCAN_ALWAYS_AVAILABLE, 0) == 1 && Settings.Global.getInt(contentResolver, Settings.Global.AIRPLANE_MODE_ON, 0) == 0 && Settings.Global.getInt(contentResolver, Settings.Global.NETWORK_RECOMMENDATIONS_ENABLED, 0) == 1 && !powerManager.isPowerSaveMode(); } Loading src/com/android/settings/wifi/WifiWakeupPreferenceController.java +7 −64 Original line number Diff line number Diff line Loading @@ -31,52 +31,28 @@ import com.android.settings.R; import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.wrapper.NetworkScoreManagerWrapper; import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnPause; import com.android.settingslib.core.lifecycle.events.OnResume; /** * {@link PreferenceControllerMixin} that controls whether the Wi-Fi Wakeup feature should be * enabled. */ public class WifiWakeupPreferenceController extends AbstractPreferenceController implements PreferenceControllerMixin, LifecycleObserver, OnResume, OnPause { implements PreferenceControllerMixin { private static final String KEY_ENABLE_WIFI_WAKEUP = "enable_wifi_wakeup"; private SettingObserver mSettingObserver; public WifiWakeupPreferenceController(Context context, Lifecycle lifecycle) { public WifiWakeupPreferenceController(Context context) { super(context); lifecycle.addObserver(this); } @Override public void displayPreference(PreferenceScreen screen) { super.displayPreference(screen); mSettingObserver = new SettingObserver(screen.findPreference(KEY_ENABLE_WIFI_WAKEUP)); } @Override public void onResume() { if (mSettingObserver != null) { mSettingObserver.register(mContext.getContentResolver(), true /* register */); } } @Override public void onPause() { if (mSettingObserver != null) { mSettingObserver.register(mContext.getContentResolver(), false /* register */); } } @Override public boolean isAvailable() { final int defaultValue = mContext.getResources().getInteger( com.android.internal.R.integer.config_wifi_wakeup_available); return Settings.Global.getInt(mContext.getContentResolver(), Settings.Global.WIFI_WAKEUP_AVAILABLE, defaultValue) == 1; return true; } @Override Loading Loading @@ -110,45 +86,12 @@ public class WifiWakeupPreferenceController extends AbstractPreferenceController boolean wifiScanningEnabled = Settings.Global.getInt(mContext.getContentResolver(), Settings.Global.WIFI_SCAN_ALWAYS_AVAILABLE, 0) == 1; boolean networkRecommendationsEnabled = Settings.Global.getInt( mContext.getContentResolver(), Settings.Global.NETWORK_RECOMMENDATIONS_ENABLED, 0) == 1; enableWifiWakeup.setEnabled(networkRecommendationsEnabled && wifiScanningEnabled); enableWifiWakeup.setEnabled(wifiScanningEnabled); if (!networkRecommendationsEnabled) { enableWifiWakeup.setSummary(R.string.wifi_wakeup_summary_scoring_disabled); } else if (!wifiScanningEnabled) { enableWifiWakeup.setSummary(R.string.wifi_wakeup_summary_scanning_disabled); } else { if (wifiScanningEnabled) { enableWifiWakeup.setSummary(R.string.wifi_wakeup_summary); } } class SettingObserver extends ContentObserver { private final Uri NETWORK_RECOMMENDATIONS_ENABLED_URI = Settings.Global.getUriFor(Settings.Global.NETWORK_RECOMMENDATIONS_ENABLED); private final Preference mPreference; public SettingObserver(Preference preference) { super(new Handler()); mPreference = preference; } public void register(ContentResolver cr, boolean register) { if (register) { cr.registerContentObserver(NETWORK_RECOMMENDATIONS_ENABLED_URI, false, this); } else { cr.unregisterContentObserver(this); } } @Override public void onChange(boolean selfChange, Uri uri) { super.onChange(selfChange, uri); if (NETWORK_RECOMMENDATIONS_ENABLED_URI.equals(uri)) { updateState(mPreference); } enableWifiWakeup.setSummary(R.string.wifi_wakeup_summary_scanning_disabled); } } } tests/robotests/src/com/android/settings/wifi/WifiWakeupPreferenceControllerTest.java +1 −33 Original line number Diff line number Diff line Loading @@ -16,9 +16,7 @@ package com.android.settings.wifi; import static android.provider.Settings.Global.NETWORK_RECOMMENDATIONS_ENABLED; import static android.provider.Settings.Global.WIFI_SCAN_ALWAYS_AVAILABLE; import static android.provider.Settings.Global.WIFI_WAKEUP_AVAILABLE; import static android.provider.Settings.Global.WIFI_WAKEUP_ENABLED; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.mock; Loading @@ -33,7 +31,6 @@ import com.android.settings.R; import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.TestConfig; import com.android.settings.testutils.shadow.SettingsShadowResources; import com.android.settingslib.core.lifecycle.Lifecycle; import org.junit.After; import org.junit.Before; Loading @@ -59,12 +56,8 @@ public class WifiWakeupPreferenceControllerTest { public void setUp() { MockitoAnnotations.initMocks(this); mContext = RuntimeEnvironment.application; mController = new WifiWakeupPreferenceController( mContext, mock(Lifecycle.class)); mController = new WifiWakeupPreferenceController(mContext); Settings.System.putInt(mContext.getContentResolver(), WIFI_SCAN_ALWAYS_AVAILABLE, 1); Settings.System.putInt(mContext.getContentResolver(), NETWORK_RECOMMENDATIONS_ENABLED, 1); SettingsShadowResources.overrideResource( com.android.internal.R.integer.config_wifi_wakeup_available, 0); } @After Loading @@ -72,18 +65,6 @@ public class WifiWakeupPreferenceControllerTest { SettingsShadowResources.reset(); } @Test public void testIsAvailable_returnsFalseWhenSettingIsNotAvailable() { Settings.System.putInt(mContext.getContentResolver(), WIFI_WAKEUP_AVAILABLE, 0); assertThat(mController.isAvailable()).isFalse(); } @Test public void testIsAvailable_returnsTrueWhenSettingIsAvailable() { Settings.System.putInt(mContext.getContentResolver(), WIFI_WAKEUP_AVAILABLE, 1); assertThat(mController.isAvailable()).isTrue(); } @Test public void handlePreferenceTreeClick_nonMatchingKey_shouldDoNothing() { final SwitchPreference pref = new SwitchPreference(mContext); Loading Loading @@ -146,17 +127,4 @@ public class WifiWakeupPreferenceControllerTest { verify(preference).setEnabled(false); verify(preference).setSummary(R.string.wifi_wakeup_summary_scanning_disabled); } @Test public void updateState_preferenceSetUncheckedAndSetDisabledWhenScoringDisabled() { final SwitchPreference preference = mock(SwitchPreference.class); Settings.System.putInt(mContext.getContentResolver(), WIFI_WAKEUP_ENABLED, 1); Settings.System.putInt(mContext.getContentResolver(), NETWORK_RECOMMENDATIONS_ENABLED, 0); mController.updateState(preference); verify(preference).setChecked(true); verify(preference).setEnabled(false); verify(preference).setSummary(R.string.wifi_wakeup_summary_scoring_disabled); } } Loading
src/com/android/settings/wifi/ConfigureWifiSettings.java +2 −6 Original line number Diff line number Diff line Loading @@ -63,10 +63,7 @@ public class ConfigureWifiSettings extends DashboardFragment { @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); int tileLimit = 1; if (mWifiWakeupPreferenceController.isAvailable()) { tileLimit++; } int tileLimit = 2; if (mUseOpenWifiPreferenceController.isAvailable()) { tileLimit++; } Loading @@ -82,8 +79,7 @@ public class ConfigureWifiSettings extends DashboardFragment { protected List<AbstractPreferenceController> getPreferenceControllers(Context context) { final NetworkScoreManagerWrapper networkScoreManagerWrapper = new NetworkScoreManagerWrapper(context.getSystemService(NetworkScoreManager.class)); mWifiWakeupPreferenceController = new WifiWakeupPreferenceController( context, getLifecycle()); mWifiWakeupPreferenceController = new WifiWakeupPreferenceController(context); mUseOpenWifiPreferenceController = new UseOpenWifiPreferenceController(context, this, networkScoreManagerWrapper, getLifecycle()); final WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE); Loading
src/com/android/settings/wifi/WifiSettings.java +4 −13 Original line number Diff line number Diff line Loading @@ -911,17 +911,10 @@ public class WifiSettings extends RestrictedSettingsFragment private void setAdditionalSettingsSummaries() { mAdditionalSettingsPreferenceCategory.addPreference(mConfigureWifiSettingsPreference); final int defaultWakeupAvailable = getResources().getInteger( com.android.internal.R.integer.config_wifi_wakeup_available); boolean wifiWakeupAvailable = Settings.Global.getInt( getContentResolver(), Settings.Global.WIFI_WAKEUP_AVAILABLE, defaultWakeupAvailable) == 1; if (wifiWakeupAvailable) { mConfigureWifiSettingsPreference.setSummary(getString( isWifiWakeupEnabled() ? R.string.wifi_configure_settings_preference_summary_wakeup_on : R.string.wifi_configure_settings_preference_summary_wakeup_off)); } int numSavedNetworks = mWifiTracker.getNumSavedNetworks(); if (numSavedNetworks > 0) { mAdditionalSettingsPreferenceCategory.addPreference(mSavedNetworksPreference); Loading @@ -942,8 +935,6 @@ public class WifiSettings extends RestrictedSettingsFragment Settings.Global.WIFI_SCAN_ALWAYS_AVAILABLE, 0) == 1 && Settings.Global.getInt(contentResolver, Settings.Global.AIRPLANE_MODE_ON, 0) == 0 && Settings.Global.getInt(contentResolver, Settings.Global.NETWORK_RECOMMENDATIONS_ENABLED, 0) == 1 && !powerManager.isPowerSaveMode(); } Loading
src/com/android/settings/wifi/WifiWakeupPreferenceController.java +7 −64 Original line number Diff line number Diff line Loading @@ -31,52 +31,28 @@ import com.android.settings.R; import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.wrapper.NetworkScoreManagerWrapper; import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnPause; import com.android.settingslib.core.lifecycle.events.OnResume; /** * {@link PreferenceControllerMixin} that controls whether the Wi-Fi Wakeup feature should be * enabled. */ public class WifiWakeupPreferenceController extends AbstractPreferenceController implements PreferenceControllerMixin, LifecycleObserver, OnResume, OnPause { implements PreferenceControllerMixin { private static final String KEY_ENABLE_WIFI_WAKEUP = "enable_wifi_wakeup"; private SettingObserver mSettingObserver; public WifiWakeupPreferenceController(Context context, Lifecycle lifecycle) { public WifiWakeupPreferenceController(Context context) { super(context); lifecycle.addObserver(this); } @Override public void displayPreference(PreferenceScreen screen) { super.displayPreference(screen); mSettingObserver = new SettingObserver(screen.findPreference(KEY_ENABLE_WIFI_WAKEUP)); } @Override public void onResume() { if (mSettingObserver != null) { mSettingObserver.register(mContext.getContentResolver(), true /* register */); } } @Override public void onPause() { if (mSettingObserver != null) { mSettingObserver.register(mContext.getContentResolver(), false /* register */); } } @Override public boolean isAvailable() { final int defaultValue = mContext.getResources().getInteger( com.android.internal.R.integer.config_wifi_wakeup_available); return Settings.Global.getInt(mContext.getContentResolver(), Settings.Global.WIFI_WAKEUP_AVAILABLE, defaultValue) == 1; return true; } @Override Loading Loading @@ -110,45 +86,12 @@ public class WifiWakeupPreferenceController extends AbstractPreferenceController boolean wifiScanningEnabled = Settings.Global.getInt(mContext.getContentResolver(), Settings.Global.WIFI_SCAN_ALWAYS_AVAILABLE, 0) == 1; boolean networkRecommendationsEnabled = Settings.Global.getInt( mContext.getContentResolver(), Settings.Global.NETWORK_RECOMMENDATIONS_ENABLED, 0) == 1; enableWifiWakeup.setEnabled(networkRecommendationsEnabled && wifiScanningEnabled); enableWifiWakeup.setEnabled(wifiScanningEnabled); if (!networkRecommendationsEnabled) { enableWifiWakeup.setSummary(R.string.wifi_wakeup_summary_scoring_disabled); } else if (!wifiScanningEnabled) { enableWifiWakeup.setSummary(R.string.wifi_wakeup_summary_scanning_disabled); } else { if (wifiScanningEnabled) { enableWifiWakeup.setSummary(R.string.wifi_wakeup_summary); } } class SettingObserver extends ContentObserver { private final Uri NETWORK_RECOMMENDATIONS_ENABLED_URI = Settings.Global.getUriFor(Settings.Global.NETWORK_RECOMMENDATIONS_ENABLED); private final Preference mPreference; public SettingObserver(Preference preference) { super(new Handler()); mPreference = preference; } public void register(ContentResolver cr, boolean register) { if (register) { cr.registerContentObserver(NETWORK_RECOMMENDATIONS_ENABLED_URI, false, this); } else { cr.unregisterContentObserver(this); } } @Override public void onChange(boolean selfChange, Uri uri) { super.onChange(selfChange, uri); if (NETWORK_RECOMMENDATIONS_ENABLED_URI.equals(uri)) { updateState(mPreference); } enableWifiWakeup.setSummary(R.string.wifi_wakeup_summary_scanning_disabled); } } }
tests/robotests/src/com/android/settings/wifi/WifiWakeupPreferenceControllerTest.java +1 −33 Original line number Diff line number Diff line Loading @@ -16,9 +16,7 @@ package com.android.settings.wifi; import static android.provider.Settings.Global.NETWORK_RECOMMENDATIONS_ENABLED; import static android.provider.Settings.Global.WIFI_SCAN_ALWAYS_AVAILABLE; import static android.provider.Settings.Global.WIFI_WAKEUP_AVAILABLE; import static android.provider.Settings.Global.WIFI_WAKEUP_ENABLED; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.mock; Loading @@ -33,7 +31,6 @@ import com.android.settings.R; import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.TestConfig; import com.android.settings.testutils.shadow.SettingsShadowResources; import com.android.settingslib.core.lifecycle.Lifecycle; import org.junit.After; import org.junit.Before; Loading @@ -59,12 +56,8 @@ public class WifiWakeupPreferenceControllerTest { public void setUp() { MockitoAnnotations.initMocks(this); mContext = RuntimeEnvironment.application; mController = new WifiWakeupPreferenceController( mContext, mock(Lifecycle.class)); mController = new WifiWakeupPreferenceController(mContext); Settings.System.putInt(mContext.getContentResolver(), WIFI_SCAN_ALWAYS_AVAILABLE, 1); Settings.System.putInt(mContext.getContentResolver(), NETWORK_RECOMMENDATIONS_ENABLED, 1); SettingsShadowResources.overrideResource( com.android.internal.R.integer.config_wifi_wakeup_available, 0); } @After Loading @@ -72,18 +65,6 @@ public class WifiWakeupPreferenceControllerTest { SettingsShadowResources.reset(); } @Test public void testIsAvailable_returnsFalseWhenSettingIsNotAvailable() { Settings.System.putInt(mContext.getContentResolver(), WIFI_WAKEUP_AVAILABLE, 0); assertThat(mController.isAvailable()).isFalse(); } @Test public void testIsAvailable_returnsTrueWhenSettingIsAvailable() { Settings.System.putInt(mContext.getContentResolver(), WIFI_WAKEUP_AVAILABLE, 1); assertThat(mController.isAvailable()).isTrue(); } @Test public void handlePreferenceTreeClick_nonMatchingKey_shouldDoNothing() { final SwitchPreference pref = new SwitchPreference(mContext); Loading Loading @@ -146,17 +127,4 @@ public class WifiWakeupPreferenceControllerTest { verify(preference).setEnabled(false); verify(preference).setSummary(R.string.wifi_wakeup_summary_scanning_disabled); } @Test public void updateState_preferenceSetUncheckedAndSetDisabledWhenScoringDisabled() { final SwitchPreference preference = mock(SwitchPreference.class); Settings.System.putInt(mContext.getContentResolver(), WIFI_WAKEUP_ENABLED, 1); Settings.System.putInt(mContext.getContentResolver(), NETWORK_RECOMMENDATIONS_ENABLED, 0); mController.updateState(preference); verify(preference).setChecked(true); verify(preference).setEnabled(false); verify(preference).setSummary(R.string.wifi_wakeup_summary_scoring_disabled); } }