menu_screen.py 1.8 KB

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