Merge changes I430ecb8a,I611a92ef into qt-dev
am: 7e80e05030

Change-Id: I2c456e3c9d81ded8d661f93dcbd4162a06a04c7a
diff --git a/res/layout/controls.xml b/res/layout/controls.xml
index df0947c..67448ae 100644
--- a/res/layout/controls.xml
+++ b/res/layout/controls.xml
@@ -30,6 +30,12 @@
         android:orientation="horizontal"
         android:layout_width="fill_parent" android:layout_height="wrap_content">
         <Button
+             android:id="@+id/run_dogfood"
+             android:layout_width="wrap_content"
+             android:layout_height="wrap_content"
+             android:text="@string/run_dogfood"
+             android:onClick="btnRunDogfood"/>
+        <Button
              android:id="@+id/run"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 060f8f2..180e0cb 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -18,6 +18,7 @@
     <!-- General -->
     <skip />
     <!--slider label -->
+    <string name="run_dogfood">Dogfood</string>
     <string name="benchmark">Benchmark</string>
 
     <string name="results">Results: not run</string>
diff --git a/src/com/android/nn/benchmark/app/NNBenchmark.java b/src/com/android/nn/benchmark/app/NNBenchmark.java
index edb84b8..2e912f8 100644
--- a/src/com/android/nn/benchmark/app/NNBenchmark.java
+++ b/src/com/android/nn/benchmark/app/NNBenchmark.java
@@ -186,8 +186,20 @@
                             mTest.destroy();
                         }
 
+                        TestModels.TestModelEntry testModel =
+                            TestModels.modelsList().get(mTestList[ct]);
+                        int testNumber = ct + 1;
+                        runOnUiThread(() -> {
+                            mTextView.setText(
+                                String.format(
+                                    "Running test %d of %d: %s",
+                                    testNumber,
+                                    mTestList.length,
+                                    testModel.toString()));
+                        });
+
                         // Select the next test
-                        mTest = changeTest(mTestList[ct]);
+                        mTest = changeTest(testModel);
 
                         // If the user selected the "long pause" option, wait
                         if (mTogglePause) {
@@ -246,17 +258,13 @@
         return tb;
     }
 
-    NNTestBase changeTest(int id) {
-        return changeTest(TestModels.modelsList().get(id));
-    }
-
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        TextView textView = new TextView(this);
-        textView.setTextSize(20);
-        textView.setText("NN BenchMark Running.");
-        setContentView(textView);
+        mTextView = new TextView(this);
+        mTextView.setTextSize(20);
+        mTextView.setText("Running NN benchmark...");
+        setContentView(mTextView);
         getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
     }
 
diff --git a/src/com/android/nn/benchmark/app/NNControls.java b/src/com/android/nn/benchmark/app/NNControls.java
index 8ac5eac..5595e62 100644
--- a/src/com/android/nn/benchmark/app/NNControls.java
+++ b/src/com/android/nn/benchmark/app/NNControls.java
@@ -34,6 +34,7 @@
 import com.android.nn.benchmark.util.TestExternalStorageActivity;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 
 public class NNControls extends Activity {
     private static final String TAG = NNControls.class.getSimpleName();
@@ -52,6 +53,24 @@
     private float mResults[];
     private String mInfo[];
 
+    private static final String[] DOGFOOD_MODEL_NAMES = new String[]{
+            "tts_float",
+            "asr_float",
+            "mobilenet_v1_1.0_224_quant_topk_aosp",
+            "mobilenet_v1_1.0_224_topk_aosp",
+            "mobilenet_v1_0.75_192_quant_topk_aosp",
+            "mobilenet_v1_0.75_192_topk_aosp",
+            "mobilenet_v1_0.5_160_quant_topk_aosp",
+            "mobilenet_v1_0.5_160_topk_aosp",
+            "mobilenet_v1_0.25_128_quant_topk_aosp",
+            "mobilenet_v1_0.25_128_topk_aosp",
+            "mobilenet_v2_0.35_128_topk_aosp",
+            "mobilenet_v2_0.5_160_topk_aosp",
+            "mobilenet_v2_0.75_192_topk_aosp",
+            "mobilenet_v2_1.0_224_topk_aosp",
+            "mobilenet_v2_1.0_224_quant_topk_aosp",
+    };
+
     @Override
     public boolean onCreateOptionsMenu(Menu menu) {
         // Inflate the menu items for use in the action bar
@@ -190,4 +209,21 @@
         NNSettings newFragment = new NNSettings(mSettings);
         newFragment.show(getFragmentManager(), "settings");
     }
+
+    public void btnRunDogfood(View v) {
+        // Update settings for dogfood.
+        mSettings[SETTING_LONG_RUN] = true;
+        mSettings[SETTING_PAUSE] = false;
+        mSettings[SETTING_DISABLE_NNAPI] = false;
+
+        // Select dogfood models.
+        for (int i = 0; i < mTestList.size(); i++) {
+            String modelName = mTestList.get(i);
+            boolean isDogfoodModel = Arrays.asList(DOGFOOD_MODEL_NAMES).contains(modelName);
+            mTestListView.setItemChecked(i, isDogfoodModel);
+        }
+
+        // Run benchmark.
+        btnRun(v);
+    }
 }