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