Update EditTextTest to use isBlinking method

use the isBlinking method to directly check whether the cursor is
blinking.

Bug: 228354442
Test: this is the test.
Change-Id: I10e01f96aeed8ea67cc3a91401c7658bbf0b34bd
diff --git a/tests/tests/widget/src/android/widget/cts/EditTextCursorCtsActivity.java b/tests/tests/widget/src/android/widget/cts/EditTextCursorCtsActivity.java
index 743ef89..a393c58 100644
--- a/tests/tests/widget/src/android/widget/cts/EditTextCursorCtsActivity.java
+++ b/tests/tests/widget/src/android/widget/cts/EditTextCursorCtsActivity.java
@@ -31,6 +31,6 @@
         setContentView(R.layout.edittext_layout);
 
         EditText et = findViewById(R.id.edittext_simple1);
-        et.setText("initial text");
+        et.setText("test for blinking cursor");
     }
 }
diff --git a/tests/tests/widget/src/android/widget/cts/EditTextTest.java b/tests/tests/widget/src/android/widget/cts/EditTextTest.java
index 3f51a1d..ca3d7db 100755
--- a/tests/tests/widget/src/android/widget/cts/EditTextTest.java
+++ b/tests/tests/widget/src/android/widget/cts/EditTextTest.java
@@ -35,6 +35,7 @@
 import android.support.test.uiautomator.By;
 import android.support.test.uiautomator.UiDevice;
 import android.support.test.uiautomator.UiObject2;
+import android.support.test.uiautomator.Until;
 import android.text.Editable;
 import android.text.InputFilter;
 import android.text.InputType;
@@ -53,6 +54,7 @@
 import android.view.accessibility.AccessibilityNodeInfo;
 import android.view.inputmethod.EditorInfo;
 import android.widget.EditText;
+import android.widget.Editor;
 import android.widget.TextView;
 import android.widget.TextView.BufferType;
 
@@ -76,7 +78,6 @@
 import org.xmlpull.v1.XmlPullParser;
 
 import java.util.List;
-import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicReference;
 
@@ -770,28 +771,30 @@
     public void testCursorNotBlinkingOnNewActivity_WithoutFocus() {
         Activity testActivity = mEmptyActivityRule.launchActivity(null);
         EditText et = testActivity.findViewById(R.id.edittext_simple1);
-        boolean isBlinking = shouldBlinkMock(et);
-        assertFalse(isBlinking);
+        Editor editor = et.getEditorForTesting();
+        boolean cursorBlinking = editor.isBlinking();
+        assertFalse(cursorBlinking);
     }
 
     @Test
     public void testCursorBlinkingOnNewActivity_WithFocus() {
         Activity testActivity = mEmptyActivityRule.launchActivity(null);
         EditText et = testActivity.findViewById(R.id.edittext_simple1);
+        Editor editor = et.getEditorForTesting();
 
         mInstrumentation.runOnMainSync(() -> {
             et.requestFocus();
         });
 
-        boolean isBlinking = shouldBlinkMock(et);
-        assertTrue(isBlinking);
+        boolean cursorBlinking = editor.isBlinking();
+        assertTrue(cursorBlinking);
     }
 
-
     @Test
     public void testSuspendAndResumeBlinkingCursor() {
         Activity testActivity = mEmptyActivityRule.launchActivity(null);
         final EditText et = testActivity.findViewById(R.id.edittext_simple1);
+        Editor editor = et.getEditorForTesting();
 
         mInstrumentation.runOnMainSync(() -> {
             et.requestFocus();
@@ -799,50 +802,31 @@
 
         UiDevice device =  UiDevice.getInstance(InstrumentationRegistry.getInstrumentation());
 
-        boolean isBlinking = shouldBlinkMock(et);
-        assertTrue(isBlinking);
+        boolean cursorBlinking = editor.isBlinking();
+        assertTrue(cursorBlinking);
 
-        //send activity to the background,
+        // Send activity to the background.
         device.pressHome();
+        device.waitForIdle();
 
-        final CountDownLatch visibilityLatch = new CountDownLatch(1);
-        //pause to allow visibility to get updated.
-        try {
-            visibilityLatch.await(2, TimeUnit.SECONDS);
-        } catch (Exception e) { }
+        cursorBlinking = editor.isBlinking();
+        assertFalse(cursorBlinking);
 
-
-        isBlinking = shouldBlinkMock(et);
-        assertFalse(isBlinking);
-
+        // Bring the activity back into the foreground
         Intent resumeActivity = new Intent(mInstrumentation.getContext(),
                 EditTextCursorCtsActivity.class);
         resumeActivity.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
         mActivity.startActivity(resumeActivity);
 
-        //pause to allow visibility to get updated.
-        try {
-            visibilityLatch.await(2, TimeUnit.SECONDS);
-        } catch (Exception e) { }
+        // Check if the activity is in the foreground.
+        device.wait(Until.findObject(By.text("test for blinking cursor")), 2000);
 
         mInstrumentation.runOnMainSync(() -> {
             et.requestFocus();
         });
 
-        isBlinking = shouldBlinkMock(et);
-        assertTrue(isBlinking);
+        cursorBlinking = editor.isBlinking();
+        assertTrue(cursorBlinking);
     }
 
-    private boolean shouldBlinkMock(EditText editText) {
-        if (!editText.isCursorVisible() || !editText.isFocused()
-                 || editText.getWindowVisibility() != editText.VISIBLE) return false;
-
-        int start = editText.getSelectionStart();
-        if (start < 0) return false;
-
-        int end = editText.getSelectionEnd();
-        if (end < 0) return false;
-
-        return start == end;
-    }
 }