Add "Use open Wi-Fi automatically" setting.

- Add toggle to ConfigureWifiSettings for "Use open Wi-Fi automatically"
- Start ACTION_CUSTOM_ENABLE activity and handle result to set the
USE_OPEN_WIFI_PACKAGE setting.

Bug: 34773276
Test: make
Change-Id: I602e271d5113e415d290468548e35059bd45d8b8
This commit is contained in:
Amin Shaikh
2017-02-02 15:47:53 -08:00
parent 89052d7268
commit 1cf25748d6
5 changed files with 426 additions and 17 deletions

View File

@@ -19,6 +19,7 @@ import static android.content.Context.NETWORK_SCORE_SERVICE;
import static android.content.Context.WIFI_SERVICE;
import android.content.Context;
import android.content.Intent;
import android.net.NetworkScoreManager;
import android.net.wifi.WifiManager;
import android.provider.SearchIndexableResource;
@@ -43,7 +44,7 @@ public class ConfigureWifiSettings extends DashboardFragment {
private static final String TAG = "ConfigureWifiSettings";
private WifiManager mWifiManager;
private UseOpenWifiPreferenceController mUseOpenWifiPreferenceController;
@Override
public int getMetricsCategory() {
@@ -58,7 +59,8 @@ public class ConfigureWifiSettings extends DashboardFragment {
@Override
public void onAttach(Context context) {
super.onAttach(context);
mProgressiveDisclosureMixin.setTileLimit(2);
mProgressiveDisclosureMixin.setTileLimit(
mUseOpenWifiPreferenceController.isAvailable() ? 3 : 2);
((SettingsActivity) getActivity()).setDisplaySearchMenu(true);
}
@@ -69,23 +71,35 @@ public class ConfigureWifiSettings extends DashboardFragment {
@Override
protected List<PreferenceController> getPreferenceControllers(Context context) {
mWifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
final NetworkScoreManagerWrapper networkScoreManagerWrapper =
new NetworkScoreManagerWrapper(context.getSystemService(NetworkScoreManager.class));
mUseOpenWifiPreferenceController = new UseOpenWifiPreferenceController(context, this,
networkScoreManagerWrapper, getLifecycle());
final WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
final List<PreferenceController> controllers = new ArrayList<>();
controllers.add(new WifiInfoPreferenceController(context, getLifecycle(), mWifiManager));
controllers.add(new CellularFallbackPreferenceController(context));
controllers.add(new NotifyOpenNetworksPreferenceController(context, getLifecycle()));
controllers.add(new WifiWakeupPreferenceController(context, getLifecycle()));
controllers.add(new NetworkScorerPickerPreferenceController(context,
new NetworkScoreManagerWrapper(
(NetworkScoreManager) getSystemService(NETWORK_SCORE_SERVICE))));
networkScoreManagerWrapper));
controllers.add(new NotifyOpenNetworksPreferenceController(context, getLifecycle()));
controllers.add(mUseOpenWifiPreferenceController);
controllers.add(new WifiSleepPolicyPreferenceController(context));
controllers.add(new WifiP2pPreferenceController(context, getLifecycle(), mWifiManager));
controllers.add(new WifiInfoPreferenceController(context, getLifecycle(), wifiManager));
controllers.add(new CellularFallbackPreferenceController(context));
controllers.add(new WifiP2pPreferenceController(context, getLifecycle(), wifiManager));
controllers.add(new WifiCallingPreferenceController(context));
controllers.add(new WpsPreferenceController(
context, getLifecycle(), mWifiManager, getFragmentManager()));
context, getLifecycle(), wifiManager, getFragmentManager()));
return controllers;
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (mUseOpenWifiPreferenceController == null ||
!mUseOpenWifiPreferenceController.onActivityResult(requestCode, resultCode)) {
super.onActivityResult(requestCode, resultCode, data);
}
}
public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
new BaseSearchIndexProvider() {
@Override