• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2014 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 
17 package com.android.tv.settings.connectivity;
18 
19 import com.android.tv.settings.MenuItem;
20 import com.android.tv.settings.R;
21 
22 import android.content.Context;
23 import android.net.ConnectivityManager;
24 import android.net.NetworkInfo;
25 import android.net.wifi.WifiInfo;
26 import android.net.wifi.WifiManager;
27 
28 /**
29  * Gets a text string based on the current connectivity status.
30  */
31 public class ConnectivityStatusTextGetter implements MenuItem.TextGetter {
32 
33     private final Context mContext;
34     private final int mEthernetStringResourceId;
35     private final int mWifiStringResourceId;
36     private final boolean mUseSsid;
37     private final ConnectivityManager mConnectivityManager;
38     private final WifiManager mWifiManager;
39 
createEthernetStatusTextGetter(Context context)40     public static ConnectivityStatusTextGetter createEthernetStatusTextGetter(Context context) {
41         return new ConnectivityStatusTextGetter(context, R.string.connected,
42                 R.string.not_connected, false);
43     }
44 
createWifiStatusTextGetter(Context context)45     public static ConnectivityStatusTextGetter createWifiStatusTextGetter(Context context) {
46         return new ConnectivityStatusTextGetter(context, R.string.not_connected,
47                 R.string.not_connected, true);
48     }
49 
ConnectivityStatusTextGetter(Context context)50     public ConnectivityStatusTextGetter(Context context) {
51         this(context, R.string.connectivity_ethernet, R.string.connectivity_wifi, true);
52     }
53 
ConnectivityStatusTextGetter(Context context, int ethernetStringResourceId, int wifiStringResourceId, boolean useSsid)54     public ConnectivityStatusTextGetter(Context context, int ethernetStringResourceId,
55             int wifiStringResourceId, boolean useSsid) {
56         mContext = context;
57         mEthernetStringResourceId = ethernetStringResourceId;
58         mWifiStringResourceId = wifiStringResourceId;
59         mUseSsid = useSsid;
60         mConnectivityManager = (ConnectivityManager) mContext.getSystemService(
61                 Context.CONNECTIVITY_SERVICE);
62         mWifiManager = (WifiManager) mContext.getSystemService(Context.WIFI_SERVICE);
63     }
64 
65     @Override
getText()66     public String getText() {
67         NetworkInfo networkInfo = mConnectivityManager.getActiveNetworkInfo();
68 
69         if (networkInfo != null) {
70             switch (networkInfo.getType()) {
71                 case ConnectivityManager.TYPE_WIFI:
72                     return getWifiString();
73                 case ConnectivityManager.TYPE_ETHERNET:
74                     return mContext.getString(mEthernetStringResourceId);
75                 default:
76                     break;
77             }
78         }
79 
80         return mContext.getString(R.string.not_connected);
81     }
82 
getWifiString()83     private String getWifiString() {
84         if (mUseSsid) {
85             WifiInfo wifiInfo = mWifiManager.getConnectionInfo();
86             if (wifiInfo != null) {
87                 String ssid = wifiInfo.getSSID();
88                 if (ssid != null) {
89                     return WifiInfo.removeDoubleQuotes(ssid);
90                 }
91             }
92         }
93         return mContext.getString(mWifiStringResourceId);
94     }
95 }
96