Merge "Adjust UX for toggles when active scorer is not set." into oc-dr1-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
89fdea9807
@@ -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()));
|
||||
|
@@ -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
|
||||
|
@@ -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 {
|
||||
|
Reference in New Issue
Block a user