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

Commit e207f934 authored by Hakjun Choi's avatar Hakjun Choi
Browse files

Add max signal level into satellite session metrics

It is added to report latest ntn signal strength when the latest is stronger than prior one. the max value will be logged per enabled satellite session

Bug: 336858177
Test: SatelliteStatsTest PersistAtomsStorageTest
      manually tested using satellite enable and compare log and the value in persist_atoms.pb proto
Change-Id: Id79f4eda855acb17b31fde7fbf4a7fe5505dac1e
parent 0b4557fd
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -682,6 +682,7 @@ message SatelliteSession {
    optional int32 count_of_incoming_datagram_success = 10;
    optional int32 count_of_incoming_datagram_failed = 11;
    optional bool is_demo_mode = 12;
    optional int32 max_ntn_signal_strength_level = 13;
}

message SatelliteIncomingDatagram {
+2 −1
Original line number Diff line number Diff line
@@ -1370,7 +1370,8 @@ public class MetricsCollector implements StatsManager.StatsPullAtomCallback {
                satelliteSession.countOfOutgoingDatagramFailed,
                satelliteSession.countOfIncomingDatagramSuccess,
                satelliteSession.countOfIncomingDatagramFailed,
                satelliteSession.isDemoMode);
                satelliteSession.isDemoMode,
                satelliteSession.maxNtnSignalStrengthLevel);
    }

    private static StatsEvent buildStatsEvent(SatelliteIncomingDatagram stats) {
+4 −3
Original line number Diff line number Diff line
@@ -2066,7 +2066,7 @@ public class PersistAtomsStorage {
    }

    /**
     * Returns SatelliteOutgoingDatagram atom that has same values or {@code null}
     * Returns SatelliteSession atom that has same values or {@code null}
     * if it does not exist.
     */
    private @Nullable SatelliteSession find(
@@ -2085,7 +2085,8 @@ public class PersistAtomsStorage {
                    && stats.countOfOutgoingDatagramFailed == key.countOfOutgoingDatagramFailed
                    && stats.countOfIncomingDatagramSuccess == key.countOfIncomingDatagramSuccess
                    && stats.countOfIncomingDatagramFailed == key.countOfIncomingDatagramFailed
                    && stats.isDemoMode == key.isDemoMode) {
                    && stats.isDemoMode == key.isDemoMode
                    && stats.maxNtnSignalStrengthLevel == key.maxNtnSignalStrengthLevel) {
                return stats;
            }
        }
@@ -2093,7 +2094,7 @@ public class PersistAtomsStorage {
    }

    /**
     * Returns SatelliteOutgoingDatagram atom that has same values or {@code null}
     * Returns SatelliteSosMessageRecommender atom that has same values or {@code null}
     * if it does not exist.
     */
    private @Nullable SatelliteSosMessageRecommender find(
+20 −0
Original line number Diff line number Diff line
@@ -16,6 +16,9 @@

package com.android.internal.telephony.metrics;

import static android.telephony.satellite.NtnSignalStrength.NTN_SIGNAL_STRENGTH_NONE;

import android.telephony.satellite.NtnSignalStrength;
import android.telephony.satellite.SatelliteManager;

import com.android.internal.telephony.PhoneFactory;
@@ -560,6 +563,7 @@ public class SatelliteStats {
        private final int mCountOfIncomingDatagramSuccess;
        private final int mCountOfIncomingDatagramFailed;
        private final boolean mIsDemoMode;
        private final @NtnSignalStrength.NtnSignalStrengthLevel int mMaxNtnSignalStrengthLevel;

        private SatelliteSessionParams(Builder builder) {
            this.mSatelliteServiceInitializationResult =
@@ -575,6 +579,7 @@ public class SatelliteStats {
            this.mCountOfIncomingDatagramSuccess = builder.mCountOfIncomingDatagramSuccess;
            this.mCountOfIncomingDatagramFailed = builder.mCountOfIncomingDatagramFailed;
            this.mIsDemoMode = builder.mIsDemoMode;
            this.mMaxNtnSignalStrengthLevel = builder.mMaxNtnSignalStrengthLevel;
        }

        public int getSatelliteServiceInitializationResult() {
@@ -621,6 +626,10 @@ public class SatelliteStats {
            return mIsDemoMode;
        }

        public @NtnSignalStrength.NtnSignalStrengthLevel int getMaxNtnSignalStrengthLevel() {
            return mMaxNtnSignalStrengthLevel;
        }

        /**
         * A builder class to create {@link SatelliteSessionParams} data structure class
         */
@@ -636,6 +645,8 @@ public class SatelliteStats {
            private int mCountOfIncomingDatagramSuccess = -1;
            private int mCountOfIncomingDatagramFailed = -1;
            private boolean mIsDemoMode = false;
            private @NtnSignalStrength.NtnSignalStrengthLevel int mMaxNtnSignalStrengthLevel =
                    NTN_SIGNAL_STRENGTH_NONE;

            /**
             * Sets satelliteServiceInitializationResult value of {@link SatelliteSession}
@@ -711,6 +722,13 @@ public class SatelliteStats {
                return this;
            }

            /** Sets the max ntn signal strength for the satellite session */
            public Builder setMaxNtnSignalStrengthLevel(
                    @NtnSignalStrength.NtnSignalStrengthLevel int maxNtnSignalStrengthLevel) {
                this.mMaxNtnSignalStrengthLevel = maxNtnSignalStrengthLevel;
                return this;
            }

            /**
             * Returns SessionParams, which contains whole component of
             * {@link SatelliteSession} atom
@@ -735,6 +753,7 @@ public class SatelliteStats {
                    + ", CountOfIncomingDatagramSuccess=" + mCountOfIncomingDatagramSuccess
                    + ", CountOfIncomingDatagramFailed=" + mCountOfIncomingDatagramFailed
                    + ", IsDemoMode=" + mIsDemoMode
                    + ", MaxNtnSignalStrengthLevel=" + mMaxNtnSignalStrengthLevel
                    + ")";
        }
    }
@@ -1261,6 +1280,7 @@ public class SatelliteStats {
        proto.countOfIncomingDatagramSuccess = param.getCountOfIncomingDatagramSuccess();
        proto.countOfIncomingDatagramFailed = param.getCountOfOutgoingDatagramFailed();
        proto.isDemoMode = param.getIsDemoMode();
        proto.maxNtnSignalStrengthLevel = param.getMaxNtnSignalStrengthLevel();
        mAtomsStorage.addSatelliteSessionStats(proto);
    }

+1 −0
Original line number Diff line number Diff line
@@ -3430,6 +3430,7 @@ public class SatelliteController extends Handler {
        synchronized (mNtnSignalsStrengthLock) {
            mNtnSignalStrength = ntnSignalStrength;
        }
        mSessionMetricsStats.updateMaxNtnSignalStrengthLevel(ntnSignalStrength.getLevel());

        List<INtnSignalStrengthCallback> deadCallersList = new ArrayList<>();
        mNtnSignalStrengthChangedListeners.values().forEach(listener -> {
Loading