FrameworkFacade.java revision b9601e3985540a776eff1d63355a721bea56aa4c
1 2package com.android.server.wifi; 3 4import android.app.AppGlobals; 5import android.app.PendingIntent; 6import android.content.Context; 7import android.content.Intent; 8import android.net.ConnectivityManager; 9import android.net.TrafficStats; 10import android.net.ip.IpManager; 11import android.os.Handler; 12import android.os.IBinder; 13import android.os.INetworkManagementService; 14import android.os.Looper; 15import android.os.RemoteException; 16import android.os.ServiceManager; 17import android.os.UserManager; 18import android.provider.Settings; 19 20import java.util.ArrayList; 21 22/** 23 * This class allows overriding objects with mocks to write unit tests 24 */ 25public class FrameworkFacade { 26 public static final String TAG = "FrameworkFacade"; 27 28 public BaseWifiLogger makeBaseLogger() { 29 return new BaseWifiLogger(); 30 } 31 32 public BaseWifiLogger makeRealLogger(WifiStateMachine stateMachine, WifiNative wifiNative) { 33 return new WifiLogger(stateMachine, wifiNative); 34 } 35 36 public int getIntegerSetting(Context context, String name, int def) { 37 return Settings.Global.getInt(context.getContentResolver(), name, def); 38 } 39 40 public long getLongSetting(Context context, String name, long def) { 41 return Settings.Global.getLong(context.getContentResolver(), name, def); 42 } 43 44 public String getStringSetting(Context context, String name) { 45 return Settings.Global.getString(context.getContentResolver(), name); 46 } 47 48 public IBinder getService(String serviceName) { 49 return ServiceManager.getService(serviceName); 50 } 51 52 public PendingIntent getBroadcast(Context context, int requestCode, Intent intent, int flags) { 53 return PendingIntent.getBroadcast(context, requestCode, intent, flags); 54 } 55 56 public SupplicantStateTracker makeSupplicantStateTracker(Context context, 57 WifiStateMachine wifiStateMachine, WifiConfigManager configManager, Handler handler) { 58 return new SupplicantStateTracker(context, wifiStateMachine, configManager, handler); 59 } 60 61 /** 62 * Create a new instance of WifiApConfigStore. 63 * @param context reference to a Context 64 * @param backupManagerProxy reference to a BackupManagerProxy 65 * @return an instance of WifiApConfigStore 66 */ 67 public WifiApConfigStore makeApConfigStore(Context context, 68 BackupManagerProxy backupManagerProxy) { 69 return new WifiApConfigStore(context, backupManagerProxy); 70 } 71 72 public long getTxPackets(String iface) { 73 return TrafficStats.getTxPackets(iface); 74 } 75 76 public long getRxPackets(String iface) { 77 return TrafficStats.getRxPackets(iface); 78 } 79 80 public IpManager makeIpManager( 81 Context context, String iface, IpManager.Callback callback) { 82 return new IpManager(context, iface, callback); 83 } 84 85 /** 86 * Create a SoftApManager. 87 * @param context current context 88 * @param looper current thread looper 89 * @param wifiNative reference to WifiNative 90 * @param nmService reference to NetworkManagementService 91 * @param cm reference to ConnectivityManager 92 * @param countryCode Country code 93 * @param allowed2GChannels list of allowed 2G channels 94 * @param listener listener for SoftApManager 95 * @return an instance of SoftApManager 96 */ 97 public SoftApManager makeSoftApManager( 98 Context context, Looper looper, WifiNative wifiNative, 99 INetworkManagementService nmService, ConnectivityManager cm, 100 String countryCode, ArrayList<Integer> allowed2GChannels, 101 SoftApManager.Listener listener) { 102 return new SoftApManager( 103 context, looper, wifiNative, nmService, cm, countryCode, 104 allowed2GChannels, listener); 105 } 106 107 /** 108 * Checks whether the given uid has been granted the given permission. 109 * @param permName the permission to check 110 * @param uid The uid to check 111 * @return {@link PackageManager.PERMISSION_GRANTED} if the permission has been granted and 112 * {@link PackageManager.PERMISSION_DENIED} otherwise 113 */ 114 public int checkUidPermission(String permName, int uid) throws RemoteException { 115 return AppGlobals.getPackageManager().checkUidPermission(permName, uid); 116 } 117 118 public WifiConfigManager makeWifiConfigManager(Context context, 119 WifiStateMachine wifiStateMachine, WifiNative wifiNative, 120 FrameworkFacade frameworkFacade, Clock clock, UserManager userManager){ 121 return new WifiConfigManager(context, wifiStateMachine, wifiNative, frameworkFacade, clock, 122 userManager); 123 } 124} 125