From 27b1e2b22c06621373fb6d271cdb38a43a4600a5 Mon Sep 17 00:00:00 2001
From: Jonathan D'Orleans <jonathan.dorleans@gmail.com>
Date: Thu, 26 May 2016 16:10:05 -0400
Subject: [PATCH]  Issues 54 - Displaying pairing code only once

---
 mycroft/client/enclosure/enclosure.py | 11 +++++++----
 mycroft/skills/pairing/__init__.py    |  4 +++-
 2 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/mycroft/client/enclosure/enclosure.py b/mycroft/client/enclosure/enclosure.py
index 203877a1a1..0c9f687f29 100644
--- a/mycroft/client/enclosure/enclosure.py
+++ b/mycroft/client/enclosure/enclosure.py
@@ -164,12 +164,15 @@ class Enclosure:
 
     def __register_events(self):
         self.client.on('mycroft.paired', self.__update_events)
+        self.client.on('recognizer_loop:wakeword', self.eyes.blink)
+        self.__register_mouth_events()
+
+    def __register_mouth_events(self):
         self.client.on('recognizer_loop:listening', self.mouth.listen)
         self.client.on('recognizer_loop:audio_output_start', self.mouth.talk)
         self.client.on('recognizer_loop:audio_output_end', self.mouth.reset)
-        self.client.on('recognizer_loop:wakeword', self.eyes.blink)
 
-    def __remove_events(self):
+    def __remove_mouth_events(self):
         self.client.remove('recognizer_loop:listening', self.mouth.listen)
         self.client.remove('recognizer_loop:audio_output_start',
                            self.mouth.talk)
@@ -180,9 +183,9 @@ class Enclosure:
     def __update_events(self, event=None):
         if event and event.metadata:
             if event.metadata.get('paired', False):
-                self.__register_events()
+                self.__register_mouth_events()
             else:
-                self.__remove_events()
+                self.__remove_mouth_events()
 
     def run(self):
         try:
diff --git a/mycroft/skills/pairing/__init__.py b/mycroft/skills/pairing/__init__.py
index 52baf6a5a5..060506b7ed 100644
--- a/mycroft/skills/pairing/__init__.py
+++ b/mycroft/skills/pairing/__init__.py
@@ -29,6 +29,7 @@ class PairingSkill(MycroftSkill):
     def __init__(self):
         super(PairingSkill, self).__init__(name="PairingSkill")
         self.client = None
+        self.displaying = False
 
     def initialize(self):
         intent = IntentBuilder("PairingIntent").require(
@@ -54,7 +55,8 @@ class PairingSkill(MycroftSkill):
             self.__emit_paired(True)
             self.emitter.remove("recognizer_loop:audio_output_start",
                                 self.__display_pairing_code)
-        else:
+        elif not self.displaying:
+            self.displaying = True
             self.enclosure.mouth_text(
                     "Pairing code: " + self.client.pairing_code)