Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 70549316 authored by Andy Hung's avatar Andy Hung
Browse files

MediaMetrics: Update the put helper for more types

In preparation to move mediametrics::Item to variant.

Test: Verify media.metrics dumpsys, atest MediaMetricsTest
Bug: 138583596
Change-Id: Ida7499cde3a92a56f99c870d049a0019cb0fa9b0
parent 60cadb23
Loading
Loading
Loading
Loading
+18 −5
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@
#include <jni.h>
#include <media/MediaMetricsItem.h>
#include <nativehelper/JNIHelp.h>
#include <variant>

#include "android_media_MediaMetricsJNI.h"
#include "android_os_Parcel.h"
@@ -74,18 +75,30 @@ struct BundleHelper {
    }

    template<>
    void put(jstring keyName, const char * const& value) {
        env->CallVoidMethod(bundle, putStringID, keyName, env->NewStringUTF(value));
    void put(jstring keyName, const std::string& value) {
        env->CallVoidMethod(bundle, putStringID, keyName, env->NewStringUTF(value.c_str()));
    }

    template<>
    void put(jstring keyName, char * const& value) {
    void put(jstring keyName, const std::pair<int64_t, int64_t>& value) {
        ; // rate is currently ignored
    }

    template<>
    void put(jstring keyName, const std::monostate& value) {
        ; // none is currently ignored
    }

    // string char * helpers

    template<>
    void put(jstring keyName, const char * const& value) {
        env->CallVoidMethod(bundle, putStringID, keyName, env->NewStringUTF(value));
    }

    template<>
    void put(jstring keyName, const std::pair<int64_t, int64_t>& value) {
        ; // rate is currently ignored
    void put(jstring keyName, char * const& value) {
        env->CallVoidMethod(bundle, putStringID, keyName, env->NewStringUTF(value));
    }

    // We allow both jstring and non-jstring variants.