Create a new project directory for safeparcel and safeparcel-processor.
Bug: 281711024
Test: N/A. Only creating the new project.
Relnote: N/A
Change-Id: I6df270a6aed8ebede528115a06310587aedb7599
diff --git a/docs-tip-of-tree/build.gradle b/docs-tip-of-tree/build.gradle
index 0265a0a..7547594 100644
--- a/docs-tip-of-tree/build.gradle
+++ b/docs-tip-of-tree/build.gradle
@@ -301,6 +301,8 @@
docs(project(":room:room-rxjava2"))
docs(project(":room:room-rxjava3"))
docs(project(":room:room-testing"))
+ docs(project(":safeparcel:safeparcel"))
+ docs(project(":safeparcel:safeparcel-processor"))
docs(project(":savedstate:savedstate"))
docs(project(":savedstate:savedstate-ktx"))
docs(project(":security:security-app-authenticator"))
diff --git a/libraryversions.toml b/libraryversions.toml
index cf3fbbf..d20f1d7 100644
--- a/libraryversions.toml
+++ b/libraryversions.toml
@@ -107,6 +107,7 @@
REMOTECALLBACK = "1.0.0-alpha02"
RESOURCEINSPECTION = "1.1.0-alpha01"
ROOM = "2.6.0-alpha02"
+SAFEPARCEL = "1.0.0-alpha01"
SAVEDSTATE = "1.3.0-alpha01"
SECURITY = "1.1.0-alpha07"
SECURITY_APP_AUTHENTICATOR = "1.0.0-alpha03"
@@ -246,6 +247,7 @@
REMOTECALLBACK = { group = "androidx.remotecallback", atomicGroupVersion = "versions.REMOTECALLBACK" }
RESOURCEINSPECTION = { group = "androidx.resourceinspection", atomicGroupVersion = "versions.RESOURCEINSPECTION" }
ROOM = { group = "androidx.room", atomicGroupVersion = "versions.ROOM" }
+SAFEPARCEL = { group = "androidx.safeparcel", atomicGroupVersion = "versions.SAFEPARCEL" }
SAVEDSTATE = { group = "androidx.savedstate", atomicGroupVersion = "versions.SAVEDSTATE" }
SECURITY = { group = "androidx.security" }
SHARETARGET = { group = "androidx.sharetarget", atomicGroupVersion = "versions.SHARETARGET" }
diff --git a/safeparcel/OWNERS b/safeparcel/OWNERS
new file mode 100644
index 0000000..a16caca
--- /dev/null
+++ b/safeparcel/OWNERS
@@ -0,0 +1,3 @@
+# Bug component: 156412
+arcoxu@google.com
+homebrew@google.com
diff --git a/safeparcel/safeparcel-processor/api/current.txt b/safeparcel/safeparcel-processor/api/current.txt
new file mode 100644
index 0000000..da4f6cc
--- /dev/null
+++ b/safeparcel/safeparcel-processor/api/current.txt
@@ -0,0 +1 @@
+// Signature format: 3.0
diff --git a/safeparcel/safeparcel-processor/build.gradle b/safeparcel/safeparcel-processor/build.gradle
new file mode 100644
index 0000000..a9b3651
--- /dev/null
+++ b/safeparcel/safeparcel-processor/build.gradle
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * 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.
+ */
+
+import androidx.build.LibraryType
+
+plugins {
+ id("AndroidXPlugin")
+ id("java-library")
+}
+
+dependencies {
+ annotationProcessor(libs.nullaway)
+ // Add dependencies here
+}
+
+androidx {
+ name = "SafeParcel Compiler"
+ type = LibraryType.ANNOTATION_PROCESSOR
+ inceptionYear = "2023"
+ description = "Annotation processor for SafeParcelable"
+}
diff --git a/safeparcel/safeparcel-processor/src/main/java/androidx/safeparcel/processor/package-info.java b/safeparcel/safeparcel-processor/src/main/java/androidx/safeparcel/processor/package-info.java
new file mode 100644
index 0000000..586292f
--- /dev/null
+++ b/safeparcel/safeparcel-processor/src/main/java/androidx/safeparcel/processor/package-info.java
@@ -0,0 +1,20 @@
+/*
+ * Copyright 2023 The Android Open Source Project
+ *
+ * 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.
+ */
+
+/**
+ * Annotation processor for SafeParcelable.
+ */
+package androidx.safeparcel.processor;
diff --git a/safeparcel/safeparcel/api/current.txt b/safeparcel/safeparcel/api/current.txt
new file mode 100644
index 0000000..e6f50d0
--- /dev/null
+++ b/safeparcel/safeparcel/api/current.txt
@@ -0,0 +1 @@
+// Signature format: 4.0
diff --git a/safeparcel/safeparcel/api/res-current.txt b/safeparcel/safeparcel/api/res-current.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/safeparcel/safeparcel/api/res-current.txt
diff --git a/safeparcel/safeparcel/api/restricted_current.txt b/safeparcel/safeparcel/api/restricted_current.txt
new file mode 100644
index 0000000..e6f50d0
--- /dev/null
+++ b/safeparcel/safeparcel/api/restricted_current.txt
@@ -0,0 +1 @@
+// Signature format: 4.0
diff --git a/safeparcel/safeparcel/build.gradle b/safeparcel/safeparcel/build.gradle
new file mode 100644
index 0000000..f2da8e0
--- /dev/null
+++ b/safeparcel/safeparcel/build.gradle
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * 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.
+ */
+
+import androidx.build.LibraryType
+
+plugins {
+ id("AndroidXPlugin")
+ id("com.android.library")
+}
+
+dependencies {
+ annotationProcessor(libs.nullaway)
+ // Add dependencies here
+}
+
+android {
+ namespace "androidx.safeparcel"
+}
+
+androidx {
+ name = "SafeParcel"
+ type = LibraryType.PUBLISHED_LIBRARY
+ inceptionYear = "2023"
+ description = "A special Parcelable interface that ensures backwards-compatibility"
+}
diff --git a/safeparcel/safeparcel/src/main/java/androidx/safeparcel/package-info.java b/safeparcel/safeparcel/src/main/java/androidx/safeparcel/package-info.java
new file mode 100644
index 0000000..338b38d
--- /dev/null
+++ b/safeparcel/safeparcel/src/main/java/androidx/safeparcel/package-info.java
@@ -0,0 +1,21 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * 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.
+ */
+
+/**
+ * SafeParcelable provides a way to add new fields to Parcelables in the future without breaking
+ * old implementations.
+ */
+package androidx.safeparcel;
diff --git a/settings.gradle b/settings.gradle
index ceba832..5050616 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -947,6 +947,8 @@
includeProject(":room:room-rxjava2", [BuildType.MAIN])
includeProject(":room:room-rxjava3", [BuildType.MAIN])
includeProject(":room:room-testing", [BuildType.MAIN])
+includeProject(":safeparcel:safeparcel", [BuildType.MAIN])
+includeProject(":safeparcel:safeparcel-processor", [BuildType.MAIN])
includeProject(":savedstate:savedstate", [BuildType.MAIN, BuildType.COMPOSE, BuildType.FLAN])
includeProject(":savedstate:savedstate-ktx", [BuildType.MAIN, BuildType.COMPOSE, BuildType.FLAN])
includeProject(":security:security-app-authenticator", [BuildType.MAIN])