X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/b0332cff6d1120f3b84696ce6b33a185bcda88e9..9ab35dd09351dbf16a80680204bf1b60b7b01458:/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py diff --git a/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py b/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py index 6873ffa4..2df5814c 100755 --- a/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py +++ b/lib/python/Plugins/SystemPlugins/WirelessLan/plugin.py @@ -151,6 +151,7 @@ class WlanStatus(Screen): self["statuspic"].setPixmapNum(0) self["statuspic"].show() + class WlanScan(Screen): skin = """ @@ -189,8 +190,8 @@ class WlanScan(Screen): self.newAPList = None self.WlanList = None self.cleanList = None - self.oldlist = None - self.listLenght = None + self.oldlist = {} + self.listLength = None self.rescanTimer = eTimer() self.rescanTimer.callback.append(self.rescanTimerFired) @@ -226,7 +227,10 @@ class WlanScan(Screen): self.rescanTimer.stop() del self.rescanTimer if cur[1] is not None: - essid = cur[1] + if cur[1] == 'hidden...': + essid = cur[1] + else: + essid = cur[0] self.close(essid,self.getWlanList()) else: self.close(None,None) @@ -270,24 +274,18 @@ class WlanScan(Screen): return((essid, bssid, _("Signal: ") + str(signal), _("Max. Bitrate: ") + str(maxrate), _("Encrypted: ") + encryption, _("Interface: ") + str(iface), divpng)) def updateAPList(self): - self.oldlist = [] - self.oldlist = self.cleanList - self.newAPList = [] newList = [] + newList = self.getAccessPoints(refresh = True) + self.newAPList = [] tmpList = [] newListIndex = None currentListEntry = None currentListIndex = None - newList = self.getAccessPoints(refresh = True) - - for oldentry in self.oldlist: - if oldentry not in newList: - newList.append(oldentry) - for newentry in newList: - if newentry[1] == "hidden...": - continue - tmpList.append(newentry) + for ap in self.oldlist.keys(): + data = self.oldlist[ap]['data'] + if data is not None: + tmpList.append(data) if len(tmpList): if "hidden..." not in tmpList: @@ -299,13 +297,13 @@ class WlanScan(Screen): currentListEntry = self["list"].getCurrent() idx = 0 for entry in self.newAPList: - if entry == currentListEntry: + if entry[0] == currentListEntry[0]: newListIndex = idx idx +=1 self['list'].setList(self.newAPList) self["list"].setIndex(newListIndex) self["list"].updateList(self.newAPList) - self.listLenght = len(self.newAPList) + self.listLength = len(self.newAPList) self.buildWlanList() self.setInfo() @@ -315,7 +313,7 @@ class WlanScan(Screen): self.w = Wlan(self.iface) aps = self.w.getNetworkList() if aps is not None: - print "[NetworkWizard.py] got Accespoints!" + print "[WirelessLan.py] got Accespoints!" tmpList = [] compList = [] for ap in aps: @@ -331,6 +329,10 @@ class WlanScan(Screen): compList.remove(compentry) for entry in compList: self.cleanList.append( ( entry[0], entry[1], entry[2], entry[3], entry[4], entry[5] ) ) + if not self.oldlist.has_key(entry[0]): + self.oldlist[entry[0]] = { 'data': entry } + else: + self.oldlist[entry[0]]['data'] = entry if "hidden..." not in self.cleanList: self.cleanList.append( ( _("enter hidden network SSID"), "hidden...", True, self.iface, _("unavailable"), "" ) ) @@ -340,31 +342,34 @@ class WlanScan(Screen): if refresh is False: self['list'].setList(self.APList) - self.listLenght = len(self.APList) + self.listLength = len(self.APList) self.setInfo() self.rescanTimer.start(5000) return self.cleanList def setInfo(self): length = self.getLength() - if length == 0: + if length <= 1: self["info"].setText(_("No wireless networks found! Please refresh.")) - elif length == 1: + elif length == 2: self["info"].setText(_("1 wireless network found!")) else: - self["info"].setText(str(length)+_(" wireless networks found!")) + self["info"].setText(str(length-1)+_(" wireless networks found!")) def buildWlanList(self): self.WlanList = [] - currList = [] - currList = self['list'].list - for entry in currList: - self.WlanList.append( (entry[1], entry[0]) ) + for entry in self['list'].list: + if entry[1] == "hidden...": + self.WlanList.append(( "hidden...",_("enter hidden network SSID") ))#continue + else: + self.WlanList.append( (entry[0], entry[0]) ) def getLength(self): - return self.listLenght + return self.listLength def getWlanList(self): + if self.WlanList is None: + self.buildWlanList() return self.WlanList