Merge "Adjust UX for toggles when active scorer is not set."
This commit is contained in:
committed by
Android (Google) Code Review
commit
ff45106b49
@@ -25,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.dashboard.DashboardFragment;
|
||||
import com.android.settings.network.NetworkScoreManagerWrapper;
|
||||
import com.android.settings.network.NetworkScorerPickerPreferenceController;
|
||||
@@ -43,6 +42,7 @@ public class ConfigureWifiSettings extends DashboardFragment {
|
||||
|
||||
private static final String TAG = "ConfigureWifiSettings";
|
||||
|
||||
private WifiWakeupPreferenceController mWifiWakeupPreferenceController;
|
||||
private UseOpenWifiPreferenceController mUseOpenWifiPreferenceController;
|
||||
|
||||
@Override
|
||||
@@ -58,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
|
||||
@@ -71,11 +77,13 @@ 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(), networkScoreManagerWrapper);
|
||||
mUseOpenWifiPreferenceController = new UseOpenWifiPreferenceController(context, this,
|
||||
networkScoreManagerWrapper, getLifecycle());
|
||||
final WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
|
||||
final List<AbstractPreferenceController> controllers = new ArrayList<>();
|
||||
controllers.add(new WifiWakeupPreferenceController(context, getLifecycle()));
|
||||
controllers.add(mWifiWakeupPreferenceController);
|
||||
controllers.add(new NetworkScorerPickerPreferenceController(context,
|
||||
networkScoreManagerWrapper));
|
||||
controllers.add(new NotifyOpenNetworksPreferenceController(context, getLifecycle()));
|
||||
|
@@ -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,14 +19,17 @@ 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.PreferenceControllerMixin;
|
||||
import com.android.settings.network.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;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* {@link AbstractPreferenceController} that controls whether a user wants to enable the "use open
|
||||
* networks automatically" feature provider by the current network recommendation provider.
|
||||
@@ -45,6 +47,7 @@ public class UseOpenWifiPreferenceController extends AbstractPreferenceControlle
|
||||
|
||||
private Preference mPreference;
|
||||
private ComponentName mEnableUseWifiComponentName;
|
||||
private boolean mDoFeatureSupportedScorersExist;
|
||||
|
||||
public UseOpenWifiPreferenceController(Context context, Fragment fragment,
|
||||
NetworkScoreManagerWrapper networkScoreManagerWrapper, Lifecycle lifecycle) {
|
||||
@@ -54,6 +57,7 @@ public class UseOpenWifiPreferenceController extends AbstractPreferenceControlle
|
||||
mNetworkScoreManagerWrapper = networkScoreManagerWrapper;
|
||||
mSettingObserver = new SettingObserver();
|
||||
updateEnableUseWifiComponentName();
|
||||
checkForFeatureSupportedScorers();
|
||||
lifecycle.addObserver(this);
|
||||
}
|
||||
|
||||
@@ -63,6 +67,21 @@ public class UseOpenWifiPreferenceController extends AbstractPreferenceControlle
|
||||
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);
|
||||
@@ -81,7 +100,7 @@ public class UseOpenWifiPreferenceController extends AbstractPreferenceControlle
|
||||
|
||||
@Override
|
||||
public boolean isAvailable() {
|
||||
return mEnableUseWifiComponentName != null;
|
||||
return mDoFeatureSupportedScorersExist;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -95,8 +114,23 @@ public class UseOpenWifiPreferenceController extends AbstractPreferenceControlle
|
||||
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
|
||||
|
@@ -26,9 +26,10 @@ import android.support.v14.preference.SwitchPreference;
|
||||
import android.support.v7.preference.Preference;
|
||||
import android.support.v7.preference.PreferenceScreen;
|
||||
import android.text.TextUtils;
|
||||
import com.android.settings.R;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.core.PreferenceControllerMixin;
|
||||
import com.android.settings.network.NetworkScoreManagerWrapper;
|
||||
import com.android.settingslib.core.AbstractPreferenceController;
|
||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||
import com.android.settingslib.core.lifecycle.LifecycleObserver;
|
||||
@@ -43,10 +44,13 @@ public class WifiWakeupPreferenceController extends AbstractPreferenceController
|
||||
implements PreferenceControllerMixin, 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);
|
||||
}
|
||||
|
||||
@@ -112,11 +116,17 @@ public class WifiWakeupPreferenceController extends AbstractPreferenceController
|
||||
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 {
|
||||
|
Reference in New Issue
Block a user