diff --git a/java/com/google/lizlooney/shoppinglist/Aisles.java b/java/com/google/lizlooney/shoppinglist/Aisles.java
index 2367168..4f794da 100644
--- a/java/com/google/lizlooney/shoppinglist/Aisles.java
+++ b/java/com/google/lizlooney/shoppinglist/Aisles.java
@@ -1,3 +1,19 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package com.google.lizlooney.shoppinglist;
 
 import java.util.List;
diff --git a/java/com/google/lizlooney/shoppinglist/AndroidManifest.xml b/java/com/google/lizlooney/shoppinglist/AndroidManifest.xml
index 052377b..e2beb04 100644
--- a/java/com/google/lizlooney/shoppinglist/AndroidManifest.xml
+++ b/java/com/google/lizlooney/shoppinglist/AndroidManifest.xml
@@ -1,3 +1,19 @@
+<!--
+ Copyright 2023 Google LLC
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.google.lizlooney.shoppinglist"
   android:versionCode="1"
diff --git a/java/com/google/lizlooney/shoppinglist/BUILD b/java/com/google/lizlooney/shoppinglist/BUILD
index 6df0af6..9823240 100644
--- a/java/com/google/lizlooney/shoppinglist/BUILD
+++ b/java/com/google/lizlooney/shoppinglist/BUILD
@@ -1,3 +1,17 @@
+# Copyright 2023 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
 # -*- mode: python; -*-
 load("//tools/build_defs/android:rules.bzl", "android_binary", "android_library")
 
diff --git a/java/com/google/lizlooney/shoppinglist/Categories.java b/java/com/google/lizlooney/shoppinglist/Categories.java
index bb54808..b240b97 100644
--- a/java/com/google/lizlooney/shoppinglist/Categories.java
+++ b/java/com/google/lizlooney/shoppinglist/Categories.java
@@ -1,3 +1,19 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package com.google.lizlooney.shoppinglist;
 
 import java.util.List;
diff --git a/java/com/google/lizlooney/shoppinglist/ChooseStores.java b/java/com/google/lizlooney/shoppinglist/ChooseStores.java
index 5392e0b..d4064f0 100644
--- a/java/com/google/lizlooney/shoppinglist/ChooseStores.java
+++ b/java/com/google/lizlooney/shoppinglist/ChooseStores.java
@@ -1,3 +1,19 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package com.google.lizlooney.shoppinglist;
 
 import android.app.Activity;
diff --git a/java/com/google/lizlooney/shoppinglist/DisplayMode.java b/java/com/google/lizlooney/shoppinglist/DisplayMode.java
index 92a1082..916abc3 100644
--- a/java/com/google/lizlooney/shoppinglist/DisplayMode.java
+++ b/java/com/google/lizlooney/shoppinglist/DisplayMode.java
@@ -1,3 +1,19 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package com.google.lizlooney.shoppinglist;
 
 import android.content.Context;
diff --git a/java/com/google/lizlooney/shoppinglist/EditItem.java b/java/com/google/lizlooney/shoppinglist/EditItem.java
index 66d260c..2f476bc 100644
--- a/java/com/google/lizlooney/shoppinglist/EditItem.java
+++ b/java/com/google/lizlooney/shoppinglist/EditItem.java
@@ -1,3 +1,19 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package com.google.lizlooney.shoppinglist;
 
 import android.app.Activity;
diff --git a/java/com/google/lizlooney/shoppinglist/Item.java b/java/com/google/lizlooney/shoppinglist/Item.java
index 1b3bf83..35dc83f 100644
--- a/java/com/google/lizlooney/shoppinglist/Item.java
+++ b/java/com/google/lizlooney/shoppinglist/Item.java
@@ -1,3 +1,19 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package com.google.lizlooney.shoppinglist;
 
 import android.content.Intent;
diff --git a/java/com/google/lizlooney/shoppinglist/ItemComparators.java b/java/com/google/lizlooney/shoppinglist/ItemComparators.java
index 28e443b..efe3fc5 100644
--- a/java/com/google/lizlooney/shoppinglist/ItemComparators.java
+++ b/java/com/google/lizlooney/shoppinglist/ItemComparators.java
@@ -1,3 +1,19 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package com.google.lizlooney.shoppinglist;
 
 import java.util.Comparator;
diff --git a/java/com/google/lizlooney/shoppinglist/ItemState.java b/java/com/google/lizlooney/shoppinglist/ItemState.java
index 8fc0e9c..caa08f0 100644
--- a/java/com/google/lizlooney/shoppinglist/ItemState.java
+++ b/java/com/google/lizlooney/shoppinglist/ItemState.java
@@ -1,3 +1,19 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package com.google.lizlooney.shoppinglist;
 
 /**
diff --git a/java/com/google/lizlooney/shoppinglist/ShoppingList.java b/java/com/google/lizlooney/shoppinglist/ShoppingList.java
index 2d21ace..1ef1881 100644
--- a/java/com/google/lizlooney/shoppinglist/ShoppingList.java
+++ b/java/com/google/lizlooney/shoppinglist/ShoppingList.java
@@ -1,3 +1,19 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package com.google.lizlooney.shoppinglist;
 
 import android.app.Activity;
diff --git a/java/com/google/lizlooney/shoppinglist/Storage.java b/java/com/google/lizlooney/shoppinglist/Storage.java
index 78c907d..e135da2 100644
--- a/java/com/google/lizlooney/shoppinglist/Storage.java
+++ b/java/com/google/lizlooney/shoppinglist/Storage.java
@@ -1,3 +1,19 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package com.google.lizlooney.shoppinglist;
 
 import android.content.Context;
diff --git a/java/com/google/lizlooney/shoppinglist/Stores.java b/java/com/google/lizlooney/shoppinglist/Stores.java
index 9a885ca..97ed79f 100644
--- a/java/com/google/lizlooney/shoppinglist/Stores.java
+++ b/java/com/google/lizlooney/shoppinglist/Stores.java
@@ -1,3 +1,19 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package com.google.lizlooney.shoppinglist;
 
 import java.util.ArrayList;
diff --git a/java/com/google/lizlooney/shoppinglist/TextChangeAdapter.java b/java/com/google/lizlooney/shoppinglist/TextChangeAdapter.java
index 5e58a8d..91dc4ae 100644
--- a/java/com/google/lizlooney/shoppinglist/TextChangeAdapter.java
+++ b/java/com/google/lizlooney/shoppinglist/TextChangeAdapter.java
@@ -1,3 +1,19 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package com.google.lizlooney.shoppinglist;
 
 import android.text.Editable;
diff --git a/java/com/google/lizlooney/shoppinglist/Utils.java b/java/com/google/lizlooney/shoppinglist/Utils.java
index 931a49f..8b83628 100644
--- a/java/com/google/lizlooney/shoppinglist/Utils.java
+++ b/java/com/google/lizlooney/shoppinglist/Utils.java
@@ -1,3 +1,19 @@
+/*
+ * Copyright 2023 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package com.google.lizlooney.shoppinglist;
 
 import android.app.AlertDialog;
diff --git a/java/com/google/lizlooney/shoppinglist/res/color/checkbox_theme.xml b/java/com/google/lizlooney/shoppinglist/res/color/checkbox_theme.xml
index 3c02bfb..92c69f8 100644
--- a/java/com/google/lizlooney/shoppinglist/res/color/checkbox_theme.xml
+++ b/java/com/google/lizlooney/shoppinglist/res/color/checkbox_theme.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2023 Google LLC
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:state_checked="false"
         android:color="#FF00FFFF"/>
diff --git a/java/com/google/lizlooney/shoppinglist/res/layout/choose_stores.xml b/java/com/google/lizlooney/shoppinglist/res/layout/choose_stores.xml
index 1cd161d..8be55ff 100644
--- a/java/com/google/lizlooney/shoppinglist/res/layout/choose_stores.xml
+++ b/java/com/google/lizlooney/shoppinglist/res/layout/choose_stores.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2023 Google LLC
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
diff --git a/java/com/google/lizlooney/shoppinglist/res/layout/edit_item.xml b/java/com/google/lizlooney/shoppinglist/res/layout/edit_item.xml
index e9f4148..96bed38 100644
--- a/java/com/google/lizlooney/shoppinglist/res/layout/edit_item.xml
+++ b/java/com/google/lizlooney/shoppinglist/res/layout/edit_item.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2023 Google LLC
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
diff --git a/java/com/google/lizlooney/shoppinglist/res/layout/shopping_list.xml b/java/com/google/lizlooney/shoppinglist/res/layout/shopping_list.xml
index 68abd0d..a05aeda 100644
--- a/java/com/google/lizlooney/shoppinglist/res/layout/shopping_list.xml
+++ b/java/com/google/lizlooney/shoppinglist/res/layout/shopping_list.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2023 Google LLC
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
diff --git a/java/com/google/lizlooney/shoppinglist/res/layout/spinner_dropdown_item.xml b/java/com/google/lizlooney/shoppinglist/res/layout/spinner_dropdown_item.xml
index 5dae513..30acfbc 100644
--- a/java/com/google/lizlooney/shoppinglist/res/layout/spinner_dropdown_item.xml
+++ b/java/com/google/lizlooney/shoppinglist/res/layout/spinner_dropdown_item.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2023 Google LLC
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
 <CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@android:id/text1"
   android:layout_width="match_parent"
diff --git a/java/com/google/lizlooney/shoppinglist/res/layout/spinner_dropdown_item_large_right.xml b/java/com/google/lizlooney/shoppinglist/res/layout/spinner_dropdown_item_large_right.xml
index e7a6571..2ad4a32 100644
--- a/java/com/google/lizlooney/shoppinglist/res/layout/spinner_dropdown_item_large_right.xml
+++ b/java/com/google/lizlooney/shoppinglist/res/layout/spinner_dropdown_item_large_right.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2023 Google LLC
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
 <CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@android:id/text1"
   android:layout_width="match_parent"
diff --git a/java/com/google/lizlooney/shoppinglist/res/layout/spinner_dropdown_item_right.xml b/java/com/google/lizlooney/shoppinglist/res/layout/spinner_dropdown_item_right.xml
index 76a5493..9a3d913 100644
--- a/java/com/google/lizlooney/shoppinglist/res/layout/spinner_dropdown_item_right.xml
+++ b/java/com/google/lizlooney/shoppinglist/res/layout/spinner_dropdown_item_right.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2023 Google LLC
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
 <CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@android:id/text1"
   android:layout_width="match_parent"
diff --git a/java/com/google/lizlooney/shoppinglist/res/layout/spinner_item.xml b/java/com/google/lizlooney/shoppinglist/res/layout/spinner_item.xml
index 95d9535..a94bcaf 100644
--- a/java/com/google/lizlooney/shoppinglist/res/layout/spinner_item.xml
+++ b/java/com/google/lizlooney/shoppinglist/res/layout/spinner_item.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2023 Google LLC
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
 <TextView xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
diff --git a/java/com/google/lizlooney/shoppinglist/res/layout/spinner_item_large_right.xml b/java/com/google/lizlooney/shoppinglist/res/layout/spinner_item_large_right.xml
index a21976e..d7a74ba 100644
--- a/java/com/google/lizlooney/shoppinglist/res/layout/spinner_item_large_right.xml
+++ b/java/com/google/lizlooney/shoppinglist/res/layout/spinner_item_large_right.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2023 Google LLC
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
 <TextView xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
diff --git a/java/com/google/lizlooney/shoppinglist/res/layout/spinner_item_right.xml b/java/com/google/lizlooney/shoppinglist/res/layout/spinner_item_right.xml
index 3300c1e..351f45c 100644
--- a/java/com/google/lizlooney/shoppinglist/res/layout/spinner_item_right.xml
+++ b/java/com/google/lizlooney/shoppinglist/res/layout/spinner_item_right.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2023 Google LLC
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
 <TextView xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
diff --git a/java/com/google/lizlooney/shoppinglist/res/values/strings.xml b/java/com/google/lizlooney/shoppinglist/res/values/strings.xml
index 3a30786..5ef85cb 100644
--- a/java/com/google/lizlooney/shoppinglist/res/values/strings.xml
+++ b/java/com/google/lizlooney/shoppinglist/res/values/strings.xml
@@ -1,4 +1,20 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2023 Google LLC
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
 <resources>
   <string name="app_name">Shopping List V3</string>
   <string name="Title">Lizzie\'s Shopping List</string>
