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

Commit 56da4c38 authored by Ruchir Rastogi's avatar Ruchir Rastogi Committed by Jeffrey Huang
Browse files

Use StatsDimensionsValueParcel within statsd apex

Because statsd now uses StatsDimensionsValueParcel instead of
StatsDimensionsValue.h/c, statsd no longer has to depend on libservices.

Test: m -j
Test: atest StatsdHostTestCases#testBroadcastSubscriber
Bug: 148604617
Change-Id: I6d65383ccec99f4672d6575232981c0f6cc40fcf
parent 86379b14
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -42,5 +42,5 @@ interface IPendingIntentRef {
      */
     oneway void sendSubscriberBroadcast(long configUid, long configId, long subscriptionId,
                                         long subscriptionRuleId, in String[] cookies,
                                         in StatsDimensionsValueParcel dimensionsValue);
                                         in StatsDimensionsValueParcel dimensionsValueParcel);
}
+7 −2
Original line number Diff line number Diff line
@@ -4,7 +4,12 @@ package android.os;
 * @hide
 */
parcelable StatsDimensionsValueParcel {
    int atomTag;
    /**
     * Field equals:
     *      - atomTag for top level StatsDimensionsValueParcel
     *      - position in dimension for all other levels
     */
    int field;
    int valueType;

    String stringValue;
@@ -12,5 +17,5 @@ parcelable StatsDimensionsValueParcel {
    long longValue;
    boolean boolValue;
    float floatValue;
    StatsDimensionsValueParcel[] arrayValue;
    StatsDimensionsValueParcel[] tupleValue;
}
+41 −0
Original line number Diff line number Diff line
@@ -95,6 +95,47 @@ public final class StatsDimensionsValue implements Parcelable {
        mValue = readValueFromParcel(mValueType, in);
    }

    /**
     * Creates a {@code StatsDimensionsValue} from a StatsDimensionsValueParcel
     * TODO(b/149103391): Make StatsDimensionsValue a wrapper on top of
     * StatsDimensionsValueParcel.
     *
     * @hide
     */
    public StatsDimensionsValue(StatsDimensionsValueParcel parcel) {
        mField = parcel.field;
        mValueType = parcel.valueType;
        switch (mValueType) {
            case STRING_VALUE_TYPE:
                mValue = parcel.stringValue;
                break;
            case INT_VALUE_TYPE:
                mValue = parcel.intValue;
                break;
            case LONG_VALUE_TYPE:
                mValue = parcel.longValue;
                break;
            case BOOLEAN_VALUE_TYPE:
                mValue = parcel.boolValue;
                break;
            case FLOAT_VALUE_TYPE:
                mValue = parcel.floatValue;
                break;
            case TUPLE_VALUE_TYPE:
                StatsDimensionsValue[] values = new StatsDimensionsValue[parcel.tupleValue.length];
                for (int i = 0; i < parcel.tupleValue.length; i++) {
                    values[i] = new StatsDimensionsValue(parcel.tupleValue[i]);
                }
                mValue = values;
                break;
            default:
                Slog.w(TAG, "StatsDimensionsValueParcel contains bad valueType: " + mValueType);
                mValue = null;
                break;
        }
    }


    /**
     * Return the field, i.e. the tag of a statsd atom.
     *
+3 −4
Original line number Diff line number Diff line
@@ -147,8 +147,9 @@ public class StatsCompanion {
        @Override
        public void sendSubscriberBroadcast(long configUid, long configId, long subscriptionId,
                long subscriptionRuleId, String[] cookies,
                StatsDimensionsValueParcel dimensionsValue) {
            enforceStatsCompanionPermission(mContext);
                StatsDimensionsValueParcel dimensionsValueParcel) {
            enforceStatsdCallingUid();
            StatsDimensionsValue dimensionsValue = new StatsDimensionsValue(dimensionsValueParcel);
            Intent intent =
                    new Intent()
                            .putExtra(StatsManager.EXTRA_STATS_CONFIG_UID, configUid)
@@ -169,8 +170,6 @@ public class StatsCompanion {
                                "Statsd sendSubscriberBroadcast with params {%d %d %d %d %s %s}",
                                configUid, configId, subscriptionId, subscriptionRuleId,
                                Arrays.toString(cookies),
                                // TODO (b/148604617): convert StatsDimensionsValueParcel into
                                // StatsDimensionsValue
                                dimensionsValue));
            }
            try {
+0 −1
Original line number Diff line number Diff line
@@ -126,7 +126,6 @@ cc_defaults {
        "libbinder",
        "libincident",
        "liblog",
        "libservices",
        "libstatssocket",
        "statsd-aidl-cpp",
    ],
Loading