Merge "Ensure AAudioStreamBuilder handles null strings" into sc-dev
diff --git a/media/libaaudio/src/core/AAudioAudio.cpp b/media/libaaudio/src/core/AAudioAudio.cpp
index 5d49759..d103aca 100644
--- a/media/libaaudio/src/core/AAudioAudio.cpp
+++ b/media/libaaudio/src/core/AAudioAudio.cpp
@@ -91,16 +91,24 @@
                                                    const char* packageName)
 {
     AudioStreamBuilder *streamBuilder = convertAAudioBuilderToStreamBuilder(builder);
-    // Only system apps can read the op package name. For regular apps the regular package name
-    // is a sufficient replacement
-    streamBuilder->setOpPackageName(packageName);
+    std::optional<std::string> optionalPackageName;
+    if (packageName != nullptr) {
+      optionalPackageName = std::string(packageName);
+    }
+    // Only system apps can read the op package name. For regular apps the
+    // regular package name is a sufficient replacement
+    streamBuilder->setOpPackageName(optionalPackageName);
 }
 
 AAUDIO_API void AAudioStreamBuilder_setAttributionTag(AAudioStreamBuilder* builder,
                                                       const char* attributionTag)
 {
     AudioStreamBuilder *streamBuilder = convertAAudioBuilderToStreamBuilder(builder);
-    streamBuilder->setAttributionTag(attributionTag);
+    std::optional<std::string> optionalAttrTag;
+    if (attributionTag != nullptr) {
+      optionalAttrTag = std::string(attributionTag);
+    }
+    streamBuilder->setAttributionTag(optionalAttrTag);
 }
 
 AAUDIO_API void AAudioStreamBuilder_setSampleRate(AAudioStreamBuilder* builder,
diff --git a/media/libaaudio/src/core/AAudioStreamParameters.h b/media/libaaudio/src/core/AAudioStreamParameters.h
index bb39d8b..5737052 100644
--- a/media/libaaudio/src/core/AAudioStreamParameters.h
+++ b/media/libaaudio/src/core/AAudioStreamParameters.h
@@ -141,7 +141,7 @@
     }
 
     // TODO b/182392769: reexamine if Identity can be used
-    void setOpPackageName(const std::string opPackageName) {
+    void setOpPackageName(const std::optional<std::string> opPackageName) {
         mOpPackageName = opPackageName;
     }
 
@@ -149,7 +149,7 @@
         return mAttributionTag;
     }
 
-    void setAttributionTag(const std::string attributionTag) {
+    void setAttributionTag(const std::optional<std::string> attributionTag) {
         mAttributionTag = attributionTag;
     }