Fixed tutorial to read instructions after hover events.

Change-Id: I64476ac8c935b6ae7ece41dd714b76cc46f94361
diff --git a/src/com/android/settings/AccessibilityTutorialActivity.java b/src/com/android/settings/AccessibilityTutorialActivity.java
index 5039970..206aa94 100644
--- a/src/com/android/settings/AccessibilityTutorialActivity.java
+++ b/src/com/android/settings/AccessibilityTutorialActivity.java
@@ -522,6 +522,9 @@
         /** Whether this module is currently focused. */
         private boolean mIsVisible;
 
+        /** Handler for sending accessibility events after the current UI action. */
+        private InstructionHandler mHandler = new InstructionHandler();
+
         /**
          * Constructs a new tutorial module for the given context and controller
          * with the specified layout.
@@ -585,8 +588,11 @@
                 return;
             }
 
-            final String text = getContext().getString(resId, formatArgs);
+            final String text = mContext.getString(resId, formatArgs);
+            mHandler.addInstruction(text);
+        }
 
+        private void addInstructionSync(CharSequence text) {
             mInstructions.setVisibility(View.VISIBLE);
             mInstructions.setText(text);
             mInstructions.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED);
@@ -661,6 +667,24 @@
         protected void setFinishVisible(boolean visible) {
             mFinish.setVisibility(visible ? VISIBLE : GONE);
         }
+
+        private class InstructionHandler extends Handler {
+            private static final int ADD_INSTRUCTION = 1;
+
+            @Override
+            public void handleMessage(Message msg) {
+                switch (msg.what) {
+                    case ADD_INSTRUCTION:
+                        final String text = (String) msg.obj;
+                        addInstructionSync(text);
+                        break;
+                }
+            }
+
+            public void addInstruction(String text) {
+                obtainMessage(ADD_INSTRUCTION, text).sendToTarget();
+            }
+        }
     }
 
     /**