diff --git a/car-ui-lib/tests/paintbooth/src/com/android/car/ui/paintbooth/caruirecyclerview/CarUiListItemActivity.java b/car-ui-lib/tests/paintbooth/src/com/android/car/ui/paintbooth/caruirecyclerview/CarUiListItemActivity.java
index f6db6d3..1819427 100644
--- a/car-ui-lib/tests/paintbooth/src/com/android/car/ui/paintbooth/caruirecyclerview/CarUiListItemActivity.java
+++ b/car-ui-lib/tests/paintbooth/src/com/android/car/ui/paintbooth/caruirecyclerview/CarUiListItemActivity.java
@@ -38,7 +38,7 @@
 import java.util.ArrayList;
 
 /**
- * Activity that shows {@link CarUiRecyclerView} with dummy {@link CarUiContentListItem} entries
+ * Activity that shows {@link CarUiRecyclerView} with sample {@link CarUiContentListItem} entries
  */
 public class CarUiListItemActivity extends Activity implements InsetsChangedListener {
 
@@ -55,11 +55,11 @@
         toolbar.setState(Toolbar.State.SUBPAGE);
 
         CarUiRecyclerView recyclerView = findViewById(R.id.list);
-        mAdapter = new CarUiListItemAdapter(generateDummyData());
+        mAdapter = new CarUiListItemAdapter(generateSampleData());
         recyclerView.setAdapter(mAdapter);
     }
 
-    private ArrayList<CarUiListItem> generateDummyData() {
+    private ArrayList<CarUiListItem> generateSampleData() {
         Context context = this;
 
         CarUiHeaderListItem header = new CarUiHeaderListItem("First header");
diff --git a/car-ui-lib/tests/paintbooth/src/com/android/car/ui/paintbooth/caruirecyclerview/CarUiRecyclerViewActivity.java b/car-ui-lib/tests/paintbooth/src/com/android/car/ui/paintbooth/caruirecyclerview/CarUiRecyclerViewActivity.java
index 810b10c..b7032c0 100644
--- a/car-ui-lib/tests/paintbooth/src/com/android/car/ui/paintbooth/caruirecyclerview/CarUiRecyclerViewActivity.java
+++ b/car-ui-lib/tests/paintbooth/src/com/android/car/ui/paintbooth/caruirecyclerview/CarUiRecyclerViewActivity.java
@@ -33,7 +33,7 @@
 import java.util.ArrayList;
 
 /**
- * Activity that shows CarUiRecyclerView example with dummy data.
+ * Activity that shows CarUiRecyclerView example with sample data.
  */
 public class CarUiRecyclerViewActivity extends Activity implements InsetsChangedListener {
     private final ArrayList<String> mData = new ArrayList<>();
@@ -51,11 +51,11 @@
         CarUiRecyclerView recyclerView = findViewById(R.id.list);
         recyclerView.setLayoutManager(new LinearLayoutManager(this));
 
-        RecyclerViewAdapter adapter = new RecyclerViewAdapter(generateDummyData());
+        RecyclerViewAdapter adapter = new RecyclerViewAdapter(generateSampleData());
         recyclerView.setAdapter(adapter);
     }
 
-    private ArrayList<String> generateDummyData() {
+    private ArrayList<String> generateSampleData() {
         for (int i = 0; i <= mDataToGenerate; i++) {
             mData.add("data" + i);
         }
diff --git a/car-ui-lib/tests/paintbooth/src/com/android/car/ui/paintbooth/caruirecyclerview/GridCarUiRecyclerViewActivity.java b/car-ui-lib/tests/paintbooth/src/com/android/car/ui/paintbooth/caruirecyclerview/GridCarUiRecyclerViewActivity.java
index 7d98a1e..5d51d4c 100644
--- a/car-ui-lib/tests/paintbooth/src/com/android/car/ui/paintbooth/caruirecyclerview/GridCarUiRecyclerViewActivity.java
+++ b/car-ui-lib/tests/paintbooth/src/com/android/car/ui/paintbooth/caruirecyclerview/GridCarUiRecyclerViewActivity.java
@@ -31,7 +31,7 @@
 
 import java.util.ArrayList;
 
-/** Activity that shows GridCarUiRecyclerView example with dummy data. */
+/** Activity that shows GridCarUiRecyclerView example with sample data. */
 public class GridCarUiRecyclerViewActivity extends Activity implements
         InsetsChangedListener {
     private final ArrayList<String> mData = new ArrayList<>();
@@ -48,11 +48,11 @@
 
         CarUiRecyclerView recyclerView = findViewById(R.id.list);
 
-        RecyclerViewAdapter adapter = new RecyclerViewAdapter(generateDummyData());
+        RecyclerViewAdapter adapter = new RecyclerViewAdapter(generateSampleData());
         recyclerView.setAdapter(adapter);
     }
 
-    private ArrayList<String> generateDummyData() {
+    private ArrayList<String> generateSampleData() {
         for (int i = 1; i <= mDataToGenerate; i++) {
             mData.add("data" + i);
         }
