menu_screen.py 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import os
  2. import socket
  3. from base_screen import BaseScreen
  4. import mopidy
  5. from ..graphic_utils import ListView
  6. class MenuScreen(BaseScreen):
  7. def __init__(self, size, base_size, manager, fonts):
  8. BaseScreen.__init__(self, size, base_size, manager, fonts)
  9. self.ip = None
  10. self.list = ListView((0, 0), size, base_size, fonts['base'])
  11. self.list_items = ["Exit Mopidy", "Shutdown", "Restart", "IP: "]
  12. self.list.set_list(self.list_items)
  13. def update(self, screen):
  14. self.list.render(screen)
  15. def touch_event(self, event):
  16. clicked = self.list.touch_event(event)
  17. if clicked is not None:
  18. if clicked == 0:
  19. os.system("pkill mopidy")
  20. elif clicked == 1:
  21. if os.system("gksu -- shutdown now -h") != 0:
  22. os.system("sudo shutdown now -h")
  23. elif clicked == 2:
  24. if os.system("gksu -- shutdown -r now") != 0:
  25. os.system("sudo shutdown -r now")
  26. elif clicked == 3:
  27. self.check_connection()
  28. # Will check internet connection
  29. def check_connection(self):
  30. try:
  31. self.manager.set_connection(False, True)
  32. s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
  33. s.connect(("8.8.8.8", 80))
  34. self.ip = s.getsockname()[0]
  35. s.close()
  36. self.list_items[3] = "IP: " + self.ip
  37. self.list.set_list(self.list_items)
  38. self.manager.set_connection(True, False)
  39. except socket.error:
  40. s.close()
  41. self.ip = None
  42. self.list_items[2] = "IP: No internet"
  43. self.list.set_list(self.list_items)
  44. self.manager.set_connection(False, False)