ConfigureWifiSettings.java revision 2fca2ebddfca4e704d8676bec15bd2b6750ee933
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 android.app.INotificationManager; 19import android.content.Context; 20import android.content.Intent; 21import android.net.NetworkScoreManager; 22import android.net.wifi.WifiManager; 23import android.os.ServiceManager; 24import android.provider.SearchIndexableResource; 25import com.android.internal.logging.nano.MetricsProto.MetricsEvent; 26import com.android.settings.R; 27import com.android.settings.SettingsActivity; 28import com.android.settings.core.PreferenceController; 29import com.android.settings.dashboard.DashboardFragment; 30import com.android.settings.network.NetworkScoreManagerWrapper; 31import com.android.settings.network.NetworkScorerPickerPreferenceController; 32import com.android.settings.network.WifiCallingPreferenceController; 33import com.android.settings.search.BaseSearchIndexProvider; 34import com.android.settings.search.Indexable; 35import com.android.settings.utils.NotificationChannelHelper; 36import com.android.settings.wifi.p2p.WifiP2pPreferenceController; 37 38import java.util.ArrayList; 39import java.util.Arrays; 40import java.util.List; 41 42public class ConfigureWifiSettings extends DashboardFragment { 43 44 private static final String TAG = "ConfigureWifiSettings"; 45 46 private UseOpenWifiPreferenceController mUseOpenWifiPreferenceController; 47 48 @Override 49 public int getMetricsCategory() { 50 return MetricsEvent.CONFIGURE_WIFI; 51 } 52 53 @Override 54 protected String getLogTag() { 55 return TAG; 56 } 57 58 @Override 59 public void onAttach(Context context) { 60 super.onAttach(context); 61 mProgressiveDisclosureMixin.setTileLimit( 62 mUseOpenWifiPreferenceController.isAvailable() ? 3 : 2); 63 ((SettingsActivity) getActivity()).setDisplaySearchMenu(true); 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 final NotificationChannelHelper notificationChannelHelper = 76 new NotificationChannelHelper(INotificationManager.Stub.asInterface( 77 ServiceManager.getService(Context.NOTIFICATION_SERVICE))); 78 final WifiManager wifiManager = context.getSystemService(WifiManager.class); 79 mUseOpenWifiPreferenceController = new UseOpenWifiPreferenceController(context, this, 80 networkScoreManagerWrapper, getLifecycle()); 81 final List<PreferenceController> controllers = new ArrayList<>(); 82 controllers.add(new WifiWakeupPreferenceController(context, getLifecycle())); 83 controllers.add(new NetworkScorerPickerPreferenceController(context, 84 networkScoreManagerWrapper)); 85 controllers.add(new NotifyOpenNetworksPreferenceController(context, 86 networkScoreManagerWrapper, notificationChannelHelper, getPackageManager())); 87 controllers.add(mUseOpenWifiPreferenceController); 88 controllers.add(new WifiInfoPreferenceController(context, getLifecycle(), wifiManager)); 89 controllers.add(new CellularFallbackPreferenceController(context)); 90 controllers.add(new WifiP2pPreferenceController(context, getLifecycle(), wifiManager)); 91 controllers.add(new WifiCallingPreferenceController(context)); 92 controllers.add(new WpsPreferenceController( 93 context, getLifecycle(), wifiManager, getFragmentManager())); 94 return controllers; 95 } 96 97 @Override 98 public void onActivityResult(int requestCode, int resultCode, Intent data) { 99 if (mUseOpenWifiPreferenceController == null || 100 !mUseOpenWifiPreferenceController.onActivityResult(requestCode, resultCode)) { 101 super.onActivityResult(requestCode, resultCode, data); 102 } 103 } 104 105 public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = 106 new BaseSearchIndexProvider() { 107 @Override 108 public List<SearchIndexableResource> getXmlResourcesToIndex(Context context, 109 boolean enabled) { 110 final SearchIndexableResource sir = new SearchIndexableResource(context); 111 sir.xmlResId = R.xml.wifi_configure_settings; 112 return Arrays.asList(sir); 113 } 114 }; 115} 116