ConfigureWifiSettings.java revision a2dd9978d4b45f3d65a861d106cae60502de1531
1/* 2 * Copyright (C) 2015 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16package com.android.settings.wifi; 17 18import static android.content.Context.NETWORK_SCORE_SERVICE; 19import static android.content.Context.WIFI_SERVICE; 20 21import android.content.Context; 22import android.content.Intent; 23import android.net.NetworkScoreManager; 24import android.net.wifi.WifiManager; 25import android.provider.SearchIndexableResource; 26 27import com.android.internal.logging.nano.MetricsProto.MetricsEvent; 28import com.android.settings.R; 29import com.android.settings.SettingsActivity; 30import com.android.settings.core.PreferenceController; 31import com.android.settings.dashboard.DashboardFragment; 32import com.android.settings.network.NetworkScoreManagerWrapper; 33import com.android.settings.network.NetworkScorerPickerPreferenceController; 34import com.android.settings.network.WifiCallingPreferenceController; 35import com.android.settings.search.BaseSearchIndexProvider; 36import com.android.settings.search.Indexable; 37import com.android.settings.wifi.p2p.WifiP2pPreferenceController; 38 39import java.util.ArrayList; 40import java.util.Arrays; 41import java.util.List; 42 43public class ConfigureWifiSettings extends DashboardFragment { 44 45 private static final String TAG = "ConfigureWifiSettings"; 46 47 private UseOpenWifiPreferenceController mUseOpenWifiPreferenceController; 48 49 @Override 50 public int getMetricsCategory() { 51 return MetricsEvent.CONFIGURE_WIFI; 52 } 53 54 @Override 55 protected String getLogTag() { 56 return TAG; 57 } 58 59 @Override 60 public void onAttach(Context context) { 61 super.onAttach(context); 62 mProgressiveDisclosureMixin.setTileLimit( 63 mUseOpenWifiPreferenceController.isAvailable() ? 3 : 2); 64 } 65 66 @Override 67 protected int getPreferenceScreenResId() { 68 return R.xml.wifi_configure_settings; 69 } 70 71 @Override 72 protected List<PreferenceController> getPreferenceControllers(Context context) { 73 final NetworkScoreManagerWrapper networkScoreManagerWrapper = 74 new NetworkScoreManagerWrapper(context.getSystemService(NetworkScoreManager.class)); 75 mUseOpenWifiPreferenceController = new UseOpenWifiPreferenceController(context, this, 76 networkScoreManagerWrapper, getLifecycle()); 77 final WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE); 78 final List<PreferenceController> controllers = new ArrayList<>(); 79 controllers.add(new WifiWakeupPreferenceController(context, getLifecycle())); 80 controllers.add(new NetworkScorerPickerPreferenceController(context, 81 networkScoreManagerWrapper)); 82 controllers.add(new NotifyOpenNetworksPreferenceController(context, getLifecycle())); 83 controllers.add(mUseOpenWifiPreferenceController); 84 controllers.add(new WifiInfoPreferenceController(context, getLifecycle(), wifiManager)); 85 controllers.add(new CellularFallbackPreferenceController(context)); 86 controllers.add(new WifiP2pPreferenceController(context, getLifecycle(), wifiManager)); 87 controllers.add(new WifiCallingPreferenceController(context)); 88 controllers.add(new WpsPreferenceController( 89 context, getLifecycle(), wifiManager, getFragmentManager())); 90 return controllers; 91 } 92 93 @Override 94 public void onActivityResult(int requestCode, int resultCode, Intent data) { 95 if (mUseOpenWifiPreferenceController == null || 96 !mUseOpenWifiPreferenceController.onActivityResult(requestCode, resultCode)) { 97 super.onActivityResult(requestCode, resultCode, data); 98 } 99 } 100 101 public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = 102 new BaseSearchIndexProvider() { 103 @Override 104 public List<SearchIndexableResource> getXmlResourcesToIndex(Context context, 105 boolean enabled) { 106 final SearchIndexableResource sir = new SearchIndexableResource(context); 107 sir.xmlResId = R.xml.wifi_configure_settings; 108 return Arrays.asList(sir); 109 } 110 }; 111} 112