Merge "Adjust UX for toggles when active scorer is not set." into oc-dr1-dev

This commit is contained in:
TreeHugger Robot
2017-07-11 20:21:01 +00:00
committed by Android (Google) Code Review
6 changed files with 168 additions and 45 deletions

View File

@@ -15,7 +15,6 @@
*/
package com.android.settings.wifi;
import static android.content.Context.NETWORK_SCORE_SERVICE;
import static android.content.Context.WIFI_SERVICE;
import android.content.Context;
@@ -26,7 +25,6 @@ import android.provider.SearchIndexableResource;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settings.SettingsActivity;
import com.android.settings.core.PreferenceController;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.network.NetworkScoreManagerWrapper;
@@ -44,6 +42,7 @@ public class ConfigureWifiSettings extends DashboardFragment {
private static final String TAG = "ConfigureWifiSettings";
private WifiWakeupPreferenceController mWifiWakeupPreferenceController;
private UseOpenWifiPreferenceController mUseOpenWifiPreferenceController;
@Override
@@ -59,8 +58,14 @@ public class ConfigureWifiSettings extends DashboardFragment {
@Override
public void onAttach(Context context) {
super.onAttach(context);
mProgressiveDisclosureMixin.setTileLimit(
mUseOpenWifiPreferenceController.isAvailable() ? 3 : 2);
int tileLimit = 1;
if (mWifiWakeupPreferenceController.isAvailable()) {
tileLimit++;
}
if (mUseOpenWifiPreferenceController.isAvailable()) {
tileLimit++;
}
mProgressiveDisclosureMixin.setTileLimit(tileLimit);
}
@Override
@@ -72,11 +77,13 @@ public class ConfigureWifiSettings extends DashboardFragment {
protected List<PreferenceController> getPreferenceControllers(Context context) {
final NetworkScoreManagerWrapper networkScoreManagerWrapper =
new NetworkScoreManagerWrapper(context.getSystemService(NetworkScoreManager.class));
mWifiWakeupPreferenceController = new WifiWakeupPreferenceController(
context, getLifecycle(), networkScoreManagerWrapper);
mUseOpenWifiPreferenceController = new UseOpenWifiPreferenceController(context, this,
networkScoreManagerWrapper, getLifecycle());
final WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
final List<PreferenceController> controllers = new ArrayList<>();
controllers.add(new WifiWakeupPreferenceController(context, getLifecycle()));
controllers.add(mWifiWakeupPreferenceController);
controllers.add(new NetworkScorerPickerPreferenceController(context,
networkScoreManagerWrapper));
controllers.add(new NotifyOpenNetworksPreferenceController(context, getLifecycle()));

View File

@@ -8,7 +8,6 @@ import android.content.Context;
import android.content.Intent;
import android.database.ContentObserver;
import android.net.NetworkScoreManager;
import android.net.NetworkScorerAppData;
import android.net.Uri;
import android.os.Handler;
@@ -20,13 +19,16 @@ import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen;
import android.text.TextUtils;
import com.android.settings.network.NetworkScoreManagerWrapper;
import com.android.settings.R;
import com.android.settings.core.PreferenceController;
import com.android.settings.network.NetworkScoreManagerWrapper;
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;
import java.util.List;
/**
* {@link PreferenceController} that controls whether a user wants to enable the "use open networks
* automatically" feature provider by the current network recommendation provider.
@@ -43,6 +45,7 @@ public class UseOpenWifiPreferenceController extends PreferenceController
private Preference mPreference;
private ComponentName mEnableUseWifiComponentName;
private boolean mDoFeatureSupportedScorersExist;
public UseOpenWifiPreferenceController(Context context, Fragment fragment,
NetworkScoreManagerWrapper networkScoreManagerWrapper, Lifecycle lifecycle) {
@@ -52,6 +55,7 @@ public class UseOpenWifiPreferenceController extends PreferenceController
mNetworkScoreManagerWrapper = networkScoreManagerWrapper;
mSettingObserver = new SettingObserver();
updateEnableUseWifiComponentName();
checkForFeatureSupportedScorers();
lifecycle.addObserver(this);
}
@@ -61,6 +65,21 @@ public class UseOpenWifiPreferenceController extends PreferenceController
appData == null ? null : appData.getEnableUseOpenWifiActivity();
}
private void checkForFeatureSupportedScorers() {
if (mEnableUseWifiComponentName != null) {
mDoFeatureSupportedScorersExist = true;
return;
}
List<NetworkScorerAppData> scorers = mNetworkScoreManagerWrapper.getAllValidScorers();
for (NetworkScorerAppData scorer : scorers) {
if (scorer.getEnableUseOpenWifiActivity() != null) {
mDoFeatureSupportedScorersExist = true;
return;
}
}
mDoFeatureSupportedScorersExist = false;
}
@Override
public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen);
@@ -79,7 +98,7 @@ public class UseOpenWifiPreferenceController extends PreferenceController
@Override
public boolean isAvailable() {
return mEnableUseWifiComponentName != null;
return mDoFeatureSupportedScorersExist;
}
@Override
@@ -93,8 +112,23 @@ public class UseOpenWifiPreferenceController extends PreferenceController
return;
}
final SwitchPreference useOpenWifiPreference = (SwitchPreference) preference;
useOpenWifiPreference.setVisible(isAvailable());
boolean isScorerSet = mNetworkScoreManagerWrapper.getActiveScorerPackage() != null;
boolean doesActiveScorerSupportFeature = mEnableUseWifiComponentName != null;
useOpenWifiPreference.setChecked(isSettingEnabled());
useOpenWifiPreference.setVisible(isAvailable());
useOpenWifiPreference.setEnabled(isScorerSet && doesActiveScorerSupportFeature);
if (!isScorerSet) {
useOpenWifiPreference.setSummary(
R.string.use_open_wifi_automatically_summary_scoring_disabled);
} else if (!doesActiveScorerSupportFeature) {
useOpenWifiPreference.setSummary(
R.string.use_open_wifi_automatically_summary_scorer_unsupported_disabled);
} else {
useOpenWifiPreference.setSummary(R.string.use_open_wifi_automatically_summary);
}
}
@Override

View File

@@ -29,6 +29,7 @@ import android.text.TextUtils;
import com.android.settings.R;
import com.android.settings.core.PreferenceController;
import com.android.settings.network.NetworkScoreManagerWrapper;
import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnPause;
@@ -41,10 +42,13 @@ public class WifiWakeupPreferenceController extends PreferenceController impleme
LifecycleObserver, OnResume, OnPause {
private static final String KEY_ENABLE_WIFI_WAKEUP = "enable_wifi_wakeup";
private final NetworkScoreManagerWrapper mNetworkScoreManager;
private SettingObserver mSettingObserver;
public WifiWakeupPreferenceController(Context context, Lifecycle lifecycle) {
public WifiWakeupPreferenceController(
Context context, Lifecycle lifecycle, NetworkScoreManagerWrapper networkScoreManager) {
super(context);
mNetworkScoreManager = networkScoreManager;
lifecycle.addObserver(this);
}
@@ -110,11 +114,17 @@ public class WifiWakeupPreferenceController extends PreferenceController impleme
boolean networkRecommendationsEnabled = Settings.Global.getInt(
mContext.getContentResolver(),
Settings.Global.NETWORK_RECOMMENDATIONS_ENABLED, 0) == 1;
enableWifiWakeup.setEnabled(networkRecommendationsEnabled && wifiScanningEnabled);
boolean activeScorerSet = mNetworkScoreManager.getActiveScorerPackage() != null;
enableWifiWakeup.setEnabled(
networkRecommendationsEnabled && wifiScanningEnabled && activeScorerSet);
enableWifiWakeup.setSummary(wifiScanningEnabled ?
R.string.wifi_wakeup_summary :
R.string.wifi_wakeup_summary_scanning_disabled);
if (!activeScorerSet) {
enableWifiWakeup.setSummary(R.string.wifi_wakeup_summary_scoring_disabled);
} else if (!wifiScanningEnabled) {
enableWifiWakeup.setSummary(R.string.wifi_wakeup_summary_scanning_disabled);
} else {
enableWifiWakeup.setSummary(R.string.wifi_wakeup_summary);
}
}
class SettingObserver extends ContentObserver {