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

Commit 69237ed4 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Add IGnssPowerIndication AIDL HAL (framework/base)"

parents 24a07883 e4bcffd2
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -83,6 +83,7 @@ java_library_static {
    libs: [
        "services.net",
        "android.hardware.light-V2.0-java",
        "android.hardware.gnss-java",
        "android.hardware.power-java",
        "android.hardware.power-V1.0-java",
        "android.hardware.vibrator-java",
+1 −0
Original line number Diff line number Diff line
@@ -88,5 +88,6 @@ class LocationShellCommand extends BasicShellCommandHandler {
        pw.println("      force_time_injection - requests NTP time injection to chipset");
        pw.println("      force_psds_injection - "
                + "requests predictive aiding data injection to chipset");
        pw.println("      request_power_stats - requests GNSS power stats update from chipset");
    }
}
+44 −31
Original line number Diff line number Diff line
@@ -363,6 +363,7 @@ public class GnssLocationProvider extends AbstractLocationProvider implements
    private final GnssMeasurementCorrectionsProvider mGnssMeasurementCorrectionsProvider;
    private final GnssAntennaInfoProvider mGnssAntennaInfoProvider;
    private final GnssNavigationMessageProvider mGnssNavigationMessageProvider;
    private final GnssPowerIndicationProvider mGnssPowerIndicationProvider;
    private final NtpTimeHelper mNtpTimeHelper;
    private final GnssGeofenceProvider mGnssGeofenceProvider;
    private final GnssCapabilitiesProvider mGnssCapabilitiesProvider;
@@ -534,6 +535,7 @@ public class GnssLocationProvider extends AbstractLocationProvider implements
        mGnssMeasurementCorrectionsProvider = new GnssMeasurementCorrectionsProvider(mHandler);
        mGnssAntennaInfoProvider = new GnssAntennaInfoProvider(injector);
        mGnssNavigationMessageProvider = new GnssNavigationMessageProvider(injector);
        mGnssPowerIndicationProvider = new GnssPowerIndicationProvider();

        mGnssMetrics = new GnssMetrics(mContext, mBatteryStats);
        mNtpTimeHelper = new NtpTimeHelper(mContext, mHandler.getLooper(), this);
@@ -1128,6 +1130,8 @@ public class GnssLocationProvider extends AbstractLocationProvider implements
                downloadPsdsData(/* psdsType= */
                        GnssPsdsDownloader.LONG_TERM_PSDS_SERVER_INDEX);
            }
        } else if ("request_power_stats".equals(command)) {
            GnssPowerIndicationProvider.requestPowerStats();
        } else {
            Log.w(TAG, "sendExtraCommand: unknown command " + command);
        }
@@ -1455,6 +1459,10 @@ public class GnssLocationProvider extends AbstractLocationProvider implements
        }
    }

    void reportGnssPowerStats(GnssPowerStats powerStats) {
        mHandler.post(() -> mGnssPowerIndicationProvider.onGnssPowerStatsAvailable(powerStats));
    }

    void setTopHalCapabilities(int topHalCapabilities) {
        mHandler.post(() -> {
            mTopHalCapabilities = topHalCapabilities;
@@ -1481,6 +1489,15 @@ public class GnssLocationProvider extends AbstractLocationProvider implements
        });
    }

    /**
     * Sets the capabilities bits for IGnssPowerIndication HAL.
     *
     * These capabilities are defined in IGnssPowerIndicationCallback.aidl.
     */
    void setSubHalPowerIndicationCapabilities(int subHalCapabilities) {
        mHandler.post(() -> mGnssPowerIndicationProvider.onCapabilitiesUpdated(subHalCapabilities));
    }

    private void restartRequests() {
        Log.i(TAG, "restartRequests");

@@ -1965,44 +1982,40 @@ public class GnssLocationProvider extends AbstractLocationProvider implements
            }
        }

        StringBuilder s = new StringBuilder();
        s.append("mStarted=").append(mStarted).append("   (changed ");
        pw.print("mStarted=" + mStarted + "   (changed ");
        TimeUtils.formatDuration(SystemClock.elapsedRealtime()
                - mStartedChangedElapsedRealtime, s);
        s.append(" ago)").append('\n');
        s.append("mBatchingEnabled=").append(mBatchingEnabled).append('\n');
        s.append("mBatchingStarted=").append(mBatchingStarted).append('\n');
        s.append("mBatchSize=").append(getBatchSize()).append('\n');
        s.append("mFixInterval=").append(mFixInterval).append('\n');
        s.append("mTopHalCapabilities=0x").append(Integer.toHexString(mTopHalCapabilities));
        s.append(" ( ");
        if (hasCapability(GPS_CAPABILITY_SCHEDULING)) s.append("SCHEDULING ");
        if (hasCapability(GPS_CAPABILITY_MSB)) s.append("MSB ");
        if (hasCapability(GPS_CAPABILITY_MSA)) s.append("MSA ");
        if (hasCapability(GPS_CAPABILITY_SINGLE_SHOT)) s.append("SINGLE_SHOT ");
        if (hasCapability(GPS_CAPABILITY_ON_DEMAND_TIME)) s.append("ON_DEMAND_TIME ");
        if (hasCapability(GPS_CAPABILITY_GEOFENCING)) s.append("GEOFENCING ");
        if (hasCapability(GPS_CAPABILITY_MEASUREMENTS)) s.append("MEASUREMENTS ");
        if (hasCapability(GPS_CAPABILITY_NAV_MESSAGES)) s.append("NAV_MESSAGES ");
        if (hasCapability(GPS_CAPABILITY_LOW_POWER_MODE)) s.append("LOW_POWER_MODE ");
        if (hasCapability(GPS_CAPABILITY_SATELLITE_BLOCKLIST)) s.append("SATELLITE_BLOCKLIST ");
                - mStartedChangedElapsedRealtime, pw);
        pw.println(" ago)");
        pw.println("mBatchingEnabled=" + mBatchingEnabled);
        pw.println("mBatchingStarted=" + mBatchingStarted);
        pw.println("mBatchSize=" + getBatchSize());
        pw.println("mFixInterval=" + mFixInterval);
        mGnssPowerIndicationProvider.dump(fd, pw, args);
        pw.print("mTopHalCapabilities=0x" + Integer.toHexString(mTopHalCapabilities) + " ( ");
        if (hasCapability(GPS_CAPABILITY_SCHEDULING)) pw.print("SCHEDULING ");
        if (hasCapability(GPS_CAPABILITY_MSB)) pw.print("MSB ");
        if (hasCapability(GPS_CAPABILITY_MSA)) pw.print("MSA ");
        if (hasCapability(GPS_CAPABILITY_SINGLE_SHOT)) pw.print("SINGLE_SHOT ");
        if (hasCapability(GPS_CAPABILITY_ON_DEMAND_TIME)) pw.print("ON_DEMAND_TIME ");
        if (hasCapability(GPS_CAPABILITY_GEOFENCING)) pw.print("GEOFENCING ");
        if (hasCapability(GPS_CAPABILITY_MEASUREMENTS)) pw.print("MEASUREMENTS ");
        if (hasCapability(GPS_CAPABILITY_NAV_MESSAGES)) pw.print("NAV_MESSAGES ");
        if (hasCapability(GPS_CAPABILITY_LOW_POWER_MODE)) pw.print("LOW_POWER_MODE ");
        if (hasCapability(GPS_CAPABILITY_SATELLITE_BLOCKLIST)) pw.print("SATELLITE_BLOCKLIST ");
        if (hasCapability(GPS_CAPABILITY_MEASUREMENT_CORRECTIONS)) {
            s.append("MEASUREMENT_CORRECTIONS ");
            pw.print("MEASUREMENT_CORRECTIONS ");
        }
        if (hasCapability(GPS_CAPABILITY_ANTENNA_INFO)) s.append("ANTENNA_INFO ");
        s.append(")\n");
        if (hasCapability(GPS_CAPABILITY_ANTENNA_INFO)) pw.print("ANTENNA_INFO ");
        pw.println(")");
        if (hasCapability(GPS_CAPABILITY_MEASUREMENT_CORRECTIONS)) {
            s.append("SubHal=MEASUREMENT_CORRECTIONS[");
            s.append(mGnssMeasurementCorrectionsProvider.toStringCapabilities());
            s.append("]\n");
            pw.println("SubHal=MEASUREMENT_CORRECTIONS["
                    + mGnssMeasurementCorrectionsProvider.toStringCapabilities() + "]");
        }
        s.append(mGnssMetrics.dumpGnssMetricsAsText());
        pw.print(mGnssMetrics.dumpGnssMetricsAsText());
        if (dumpAll) {
            s.append("native internal state: \n");
            s.append("  ").append(native_get_internal_state());
            s.append("\n");
            pw.println("native internal state: ");
            pw.println("  " + native_get_internal_state());
        }
        pw.append(s);
    }

    // preallocated to avoid memory allocation in reportNmea()
+10 −0
Original line number Diff line number Diff line
@@ -333,6 +333,11 @@ public class GnssManagerService implements GnssNative.Callbacks {
        mGnssLocationProvider.reportNavigationMessage(event);
    }

    @Override
    public void reportGnssPowerStats(GnssPowerStats powerStats) {
        mGnssLocationProvider.reportGnssPowerStats(powerStats);
    }

    @Override
    public void setTopHalCapabilities(int topHalCapabilities) {
        mGnssLocationProvider.setTopHalCapabilities(topHalCapabilities);
@@ -343,6 +348,11 @@ public class GnssManagerService implements GnssNative.Callbacks {
        mGnssLocationProvider.setSubHalMeasurementCorrectionsCapabilities(subHalCapabilities);
    }

    @Override
    public void setSubHalPowerIndicationCapabilities(int subHalCapabilities) {
        mGnssLocationProvider.setSubHalPowerIndicationCapabilities(subHalCapabilities);
    }

    @Override
    public void setGnssYearOfHardware(int yearOfHardware) {
        mGnssLocationProvider.setGnssYearOfHardware(yearOfHardware);
+12 −0
Original line number Diff line number Diff line
@@ -48,8 +48,10 @@ class GnssNative {
        void reportMeasurementData(GnssMeasurementsEvent event);
        void reportAntennaInfo(List<GnssAntennaInfo> antennaInfos);
        void reportNavigationMessage(GnssNavigationMessage event);
        void reportGnssPowerStats(GnssPowerStats powerStats);
        void setTopHalCapabilities(int topHalCapabilities);
        void setSubHalMeasurementCorrectionsCapabilities(int subHalCapabilities);
        void setSubHalPowerIndicationCapabilities(int subHalCapabilities);
        void setGnssYearOfHardware(int yearOfHardware);
        void setGnssHardwareModelName(String modelName);
        void reportGnssServiceRestarted();
@@ -178,6 +180,11 @@ class GnssNative {
        mCallbacks.reportNavigationMessage(event);
    }

    @NativeEntryPoint
    private void reportGnssPowerStats(GnssPowerStats powerStats) {
        mCallbacks.reportGnssPowerStats(powerStats);
    }

    @NativeEntryPoint
    private void setTopHalCapabilities(int topHalCapabilities) {
        mCallbacks.setTopHalCapabilities(topHalCapabilities);
@@ -188,6 +195,11 @@ class GnssNative {
        mCallbacks.setSubHalMeasurementCorrectionsCapabilities(subHalCapabilities);
    }

    @NativeEntryPoint
    private void setSubHalPowerIndicationCapabilities(int subHalCapabilities) {
        mCallbacks.setSubHalPowerIndicationCapabilities(subHalCapabilities);
    }

    @NativeEntryPoint
    private void setGnssYearOfHardware(int yearOfHardware) {
        mCallbacks.setGnssYearOfHardware(yearOfHardware);
Loading