| 138 | |
| 139 | |
| 140 | class NetworkSettings: |
| 141 | _instance = None |
| 142 | |
| 143 | # constants for serviceNetworkDefaultSettings["mode"] parameter |
| 144 | PROXY_MODE_NONE = 0 # 0 - No proxy |
| 145 | PROXY_MODE_AUTODETECT = 1 # 1 - Auto-detected proxy settings |
| 146 | PROXY_MODE_MANUAL = 2 # 2 - Manual proxy settings |
| 147 | |
| 148 | @classmethod |
| 149 | def getInstance(cls): |
| 150 | if cls._instance is None: |
| 151 | cls._instance = NetworkSettings() |
| 152 | |
| 153 | return cls._instance |
| 154 | |
| 155 | def __init__(self): |
| 156 | |
| 157 | serviceNetworkDefaultSettings = { |
| 158 | "mode" : self.PROXY_MODE_AUTODETECT, |
| 159 | "type" : "https", |
| 160 | "address" : "", |
| 161 | "port" : "", |
| 162 | "access" : 15, |
| 163 | "login" : None, |
| 164 | "password": None |
| 165 | } |
| 166 | |
| 167 | self.serviceNetworkSettings = SettingsProvider.getInstance().getSettings( |
| 168 | "pyfaServiceNetworkSettings", serviceNetworkDefaultSettings) |
| 169 | |
| 170 | def isEnabled(self, type): |
| 171 | if type & self.serviceNetworkSettings["access"]: |
| 172 | return True |
| 173 | return False |
| 174 | |
| 175 | def toggleAccess(self, type, toggle=True): |
| 176 | bitfield = self.serviceNetworkSettings["access"] |
| 177 | |
| 178 | if toggle: # Turn bit on |
| 179 | self.serviceNetworkSettings["access"] = type | bitfield |
| 180 | else: # Turn bit off |
| 181 | self.serviceNetworkSettings["access"] = ~type & bitfield |
| 182 | |
| 183 | def getMode(self): |
| 184 | return self.serviceNetworkSettings["mode"] |
| 185 | |
| 186 | def getAddress(self): |
| 187 | return self.serviceNetworkSettings["address"] |
| 188 | |
| 189 | def getPort(self): |
| 190 | return self.serviceNetworkSettings["port"] |
| 191 | |
| 192 | def getType(self): |
| 193 | return self.serviceNetworkSettings["type"] |
| 194 | |
| 195 | def getAccess(self): |
| 196 | return self.serviceNetworkSettings["access"] |
| 197 | |