Fix several bugs in SysUI jank test

1. Find a new indicator of quick settings shade because recently all id of
buttons had been removed.
2. selectWatchFaceFromFullList() should go back to previous screen if
cannot find watch face index.
3. Set expected frame number to be 5 for adding new favorite watch face
test to prevent failure.
4. Try swiping several times to bring up WFP due to b/32207068

Change-Id: Ifb85b214cba4e4bcacdb579428c7c72eba1df074
diff --git a/tests/jank/sysapp_wear/src/com/android/wearable/sysapp/janktests/QuickSettingsJankTest.java b/tests/jank/sysapp_wear/src/com/android/wearable/sysapp/janktests/QuickSettingsJankTest.java
index ed9c069..fa9e89f 100644
--- a/tests/jank/sysapp_wear/src/com/android/wearable/sysapp/janktests/QuickSettingsJankTest.java
+++ b/tests/jank/sysapp_wear/src/com/android/wearable/sysapp/janktests/QuickSettingsJankTest.java
@@ -40,7 +40,7 @@
     private SysAppTestHelper mHelper;
 
     private static final String WEARABLE_APP_PACKAGE = "com.google.android.wearable.app";
-    private static final String QUICK_SETTINGS_LAUNCHED_INDICATOR = "settings_icon";
+    private static final String QUICK_SETTINGS_LAUNCHED_INDICATOR = "Quick settings";
 
     /*
      * (non-Javadoc)
@@ -55,9 +55,10 @@
     }
 
     private void isQuickSettingShadeLaunched() throws TimeoutException {
-        SystemClock.sleep(SysAppTestHelper.SHORT_TIMEOUT + SysAppTestHelper.SHORT_TIMEOUT); //Wait until date & battery info transitions to page indicator
+        //Wait until date & battery info transitions to page indicator
+        SystemClock.sleep(SysAppTestHelper.SHORT_TIMEOUT + SysAppTestHelper.SHORT_TIMEOUT);
         UiObject2 quickSettingsShade = mDevice.wait(
-                Until.findObject(By.res(WEARABLE_APP_PACKAGE, QUICK_SETTINGS_LAUNCHED_INDICATOR)),
+                Until.findObject(By.desc(QUICK_SETTINGS_LAUNCHED_INDICATOR)),
                 SysAppTestHelper.SHORT_TIMEOUT);
         Assert.assertNotNull("Quick settings shade not launched", quickSettingsShade);
 
diff --git a/tests/jank/sysapp_wear/src/com/android/wearable/sysapp/janktests/SysAppTestHelper.java b/tests/jank/sysapp_wear/src/com/android/wearable/sysapp/janktests/SysAppTestHelper.java
index 8e6ba1d..dd305e2 100644
--- a/tests/jank/sysapp_wear/src/com/android/wearable/sysapp/janktests/SysAppTestHelper.java
+++ b/tests/jank/sysapp_wear/src/com/android/wearable/sysapp/janktests/SysAppTestHelper.java
@@ -38,6 +38,7 @@
 
     public static final int EXPECTED_FRAMES_CARDS_TEST = 20;
     public static final int EXPECTED_FRAMES_WATCHFACE_PICKER_TEST = 20;
+    public static final int EXPECTED_FRAMES_WATCHFACE_PICKER_TEST_ADD_FAVORITE = 5;
     public static final int EXPECTED_FRAMES = 100;
     public static final int LONG_TIMEOUT = 5000;
     public static final int SHORT_TIMEOUT = 500;
@@ -47,10 +48,6 @@
     private static final String RELOAD_NOTIFICATION_CARD_INTENT = "com.google.android.wearable."
             + "support.wearnotificationgenerator.SHOW_NOTIFICATION";
     private static final String HOME_INDICATOR = "charging_icon";
-    private static final String LAUNCHER_VIEW_NAME = "launcher_view";
-    private static final String CARD_VIEW_NAME = "activity_view";
-    private static final String QUICKSETTING_VIEW_NAME = "settings_icon";
-    private static final String WATCHFACE_PREVIEW_NAME = "preview_image";
 
     // Demo card selectors
     private static final UiSelector CARD_SELECTOR = new UiSelector()
@@ -159,23 +156,6 @@
             count++;
         } while (count < 5);
 
-        // TODO (yuanlang@) Delete the following hacky codes after charging icon issue fixed
-        // Make sure we're not in the launcher
-        if (waitForSysAppUiObject2(LAUNCHER_VIEW_NAME) != null) {
-            mDevice.pressBack();
-        }
-        // Make sure we're not in cards view
-        if (waitForSysAppUiObject2(CARD_VIEW_NAME) != null) {
-            mDevice.pressBack();
-        }
-        // Make sure we're not in the quick settings
-        if (waitForSysAppUiObject2(QUICKSETTING_VIEW_NAME) != null) {
-            mDevice.pressBack();
-        }
-        // Make sure we're not in watch face picker
-        if (waitForSysAppUiObject2(WATCHFACE_PREVIEW_NAME) != null) {
-            mDevice.pressBack();
-        }
         SystemClock.sleep(LONG_TIMEOUT);
     }
 
diff --git a/tests/jank/sysapp_wear/src/com/android/wearable/sysapp/janktests/WatchFacePickerJankTest.java b/tests/jank/sysapp_wear/src/com/android/wearable/sysapp/janktests/WatchFacePickerJankTest.java
index 7ca40bc..4fd04f8 100644
--- a/tests/jank/sysapp_wear/src/com/android/wearable/sysapp/janktests/WatchFacePickerJankTest.java
+++ b/tests/jank/sysapp_wear/src/com/android/wearable/sysapp/janktests/WatchFacePickerJankTest.java
@@ -69,9 +69,8 @@
      * Test the jank by adding watch face to favorites.
      */
     @JankTest(beforeLoop = "startFromWatchFacePickerFull",
-            afterLoop = "resetToWatchFacePickerFull",
             afterTest = "removeAllButOneWatchFace",
-            expectedFrames = SysAppTestHelper.EXPECTED_FRAMES_WATCHFACE_PICKER_TEST)
+            expectedFrames = SysAppTestHelper.EXPECTED_FRAMES_WATCHFACE_PICKER_TEST_ADD_FAVORITE)
     @GfxMonitor(processName = WEARABLE_APP_PACKAGE)
     public void testSelectWatchFaceFromFullList() {
         selectWatchFaceFromFullList(0);
@@ -91,7 +90,7 @@
     /**
      * Test the jank on flinging watch face picker.
      */
-    @JankTest(beforeLoop = "startWithFourWatchFaces", afterLoop = "resetToWatchFacePicker",
+    @JankTest(beforeTest = "startWithFourWatchFaces", beforeLoop = "resetToWatchFacePicker",
             afterTest = "removeAllButOneWatchFace",
             expectedFrames = SysAppTestHelper.EXPECTED_FRAMES_WATCHFACE_PICKER_TEST)
     @GfxMonitor(processName = WEARABLE_APP_PACKAGE)
@@ -192,8 +191,14 @@
     }
 
     private void openPicker() {
-        mHelper.swipeLeft();
-        Assert.assertNotNull(mHelper.waitForSysAppUiObject2(WATCHFACE_PREVIEW_NAME));
+        // Try 5 times in case WFP is not ready
+        for (int i = 0; i < 5; i ++) {
+            mHelper.swipeLeft();
+            if (mHelper.waitForSysAppUiObject2(WATCHFACE_PREVIEW_NAME) != null) {
+                return;
+            }
+        }
+        Assert.fail("Still cannot open WFP after several attempts");
     }
 
     private void openPickerAllList() {
@@ -225,7 +230,10 @@
         List<UiObject2> watchFaces = watchFacePickerAllList.getChildren();
         Assert.assertNotNull(watchFaces);
         int localIndex = index % 4;
-        if (watchFaces.size() <= localIndex) return;
+        if (watchFaces.size() <= localIndex) {
+            mDevice.pressBack();
+            return;
+        }
 
         Log.v(TAG, "Tapping the " + localIndex + " watchface on screen ...");
         watchFaces.get(localIndex).click();
@@ -244,7 +252,9 @@
         Assert.assertNotNull(watchFacePicker);
         List<UiObject2> watchFaces = watchFacePicker.getChildren();
         Assert.assertNotNull(watchFaces);
-        if (isOnlyOneWatchFaceInFavorites()) return;
+        if (isOnlyOneWatchFaceInFavorites()) {
+            return;
+        }
 
         Log.v(TAG, "Removing first watch face from favorites ...");
         watchFaces.get(0).swipe(Direction.DOWN, 1.0f);