def __init__(self, app, settings):
        super(GuiController, self).__init__()
        self._app = app
        self._settings = settings
        self._needs_read = False
        self._reader = None
        self._creds = None
        self._lock = QtCore.QMutex()
        self._keystore = get_keystore()
        self._current_device_has_ccid_disabled = False
        self.timer = Timer(TIME_PERIOD)

        self.watcher = observe_reader(self.reader_name, self._on_reader)

        self.startTimer(3000)
        self.timer.time_changed.connect(self.refresh_codes)