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

Commit b9080f55 authored by Neil Fuller's avatar Neil Fuller
Browse files

Tidy-ups and refactoring

Extracted changes to reduce the size of upcoming changes. These do not
alter behavior.

The biggest change is associated with async execution of logic in the
time_detector. The time_zone_detector will need something similar soon
and this new approach is easier to test. Changing the time_detector will
ensure consistency.

Other changes are renames of parameters, variables and javadoc
improvements.

Bug: 222295093
Test: atest services/tests/servicestests/src/com/android/server/timezonedetector/TimeZoneDetectorStrategyImplTest.java
Change-Id: Ibedeafa10f7d73bbdaf6055073c7cf1a79026e83
parent bac13cfa
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -263,11 +263,11 @@ public final class GnssTimeUpdateService extends Binder {
        long gnssUnixEpochTimeMillis = locationTime.getUnixEpochTimeMillis();
        long elapsedRealtimeMs = locationTime.getElapsedRealtimeNanos() / 1_000_000L;

        UnixEpochTime timeSignal = new UnixEpochTime(elapsedRealtimeMs, gnssUnixEpochTimeMillis);
        mLastSuggestedGnssTime = timeSignal;
        UnixEpochTime unixEpochTime = new UnixEpochTime(elapsedRealtimeMs, gnssUnixEpochTimeMillis);
        mLastSuggestedGnssTime = unixEpochTime;

        GnssTimeSuggestion timeSuggestion = new GnssTimeSuggestion(timeSignal);
        mTimeDetectorInternal.suggestGnssTime(timeSuggestion);
        GnssTimeSuggestion suggestion = new GnssTimeSuggestion(unixEpochTime);
        mTimeDetectorInternal.suggestGnssTime(suggestion);
    }

    @Override
+14 −6
Original line number Diff line number Diff line
@@ -56,11 +56,19 @@ public interface TimeDetectorInternal {
     * valid but does not change the time because it matches the current device time is considered
     * accepted.
     */
    boolean setManualTimeForDpm(@NonNull ManualTimeSuggestion manualTimeSuggestion);
    boolean setManualTimeForDpm(@NonNull ManualTimeSuggestion suggestion);

    /** Used to pass new network time suggestions to the time detector. */
    void suggestNetworkTime(@NonNull NetworkTimeSuggestion timeSignal);
    /**
     * Suggests a network time to the time detector. The suggestion may not be used by the time
     * detector to set the device's time depending on device configuration and user settings, but
     * can replace previous network suggestions received.
     */
    void suggestNetworkTime(@NonNull NetworkTimeSuggestion suggestion);

    /** Used to pass new GNSS time suggestions to the time detector. */
    void suggestGnssTime(@NonNull GnssTimeSuggestion timeSignal);
    /**
     * Suggests a GNSS-derived time to the time detector. The suggestion may not be used by the time
     * detector to set the device's time depending on device configuration and user settings, but
     * can replace previous GNSS suggestions received.
     */
    void suggestGnssTime(@NonNull GnssTimeSuggestion suggestion);
}
+9 −9
Original line number Diff line number Diff line
@@ -72,24 +72,24 @@ public class TimeDetectorInternalImpl implements TimeDetectorInternal {
    }

    @Override
    public boolean setManualTimeForDpm(@NonNull ManualTimeSuggestion timeSignal) {
        Objects.requireNonNull(timeSignal);
    public boolean setManualTimeForDpm(@NonNull ManualTimeSuggestion suggestion) {
        Objects.requireNonNull(suggestion);

        int userId = mCurrentUserIdentityInjector.getCurrentUserId();
        return mTimeDetectorStrategy.suggestManualTime(userId, timeSignal, false);
        return mTimeDetectorStrategy.suggestManualTime(userId, suggestion, false);
    }

    @Override
    public void suggestNetworkTime(@NonNull NetworkTimeSuggestion timeSignal) {
        Objects.requireNonNull(timeSignal);
    public void suggestNetworkTime(@NonNull NetworkTimeSuggestion suggestion) {
        Objects.requireNonNull(suggestion);

        mHandler.post(() -> mTimeDetectorStrategy.suggestNetworkTime(timeSignal));
        mHandler.post(() -> mTimeDetectorStrategy.suggestNetworkTime(suggestion));
    }

    @Override
    public void suggestGnssTime(@NonNull GnssTimeSuggestion timeSignal) {
        Objects.requireNonNull(timeSignal);
    public void suggestGnssTime(@NonNull GnssTimeSuggestion suggestion) {
        Objects.requireNonNull(suggestion);

        mHandler.post(() -> mTimeDetectorStrategy.suggestGnssTime(timeSignal));
        mHandler.post(() -> mTimeDetectorStrategy.suggestGnssTime(suggestion));
    }
}
+6 −6
Original line number Diff line number Diff line
@@ -319,9 +319,9 @@ public final class TimeDetectorService extends ITimeDetectorService.Stub
    }

    @Override
    public boolean setManualTime(@NonNull ManualTimeSuggestion timeSignal) {
    public boolean setManualTime(@NonNull ManualTimeSuggestion suggestion) {
        enforceManageTimeDetectorPermission();
        Objects.requireNonNull(timeSignal);
        Objects.requireNonNull(suggestion);

        // This calls suggestManualTime() as the logic is identical, it only differs in the
        // permission required, which is handled on the line above.
@@ -330,7 +330,7 @@ public final class TimeDetectorService extends ITimeDetectorService.Stub
        try {
            final boolean bypassUserPolicyChecks = false;
            return mTimeDetectorStrategy.suggestManualTime(
                    userId, timeSignal, bypassUserPolicyChecks);
                    userId, suggestion, bypassUserPolicyChecks);
        } finally {
            Binder.restoreCallingIdentity(token);
        }
@@ -363,11 +363,11 @@ public final class TimeDetectorService extends ITimeDetectorService.Stub
    /**
     * Suggests network time with permission checks. For use by {@link TimeDetectorShellCommand}.
     */
    void suggestNetworkTime(@NonNull NetworkTimeSuggestion timeSignal) {
    void suggestNetworkTime(@NonNull NetworkTimeSuggestion suggestion) {
        enforceSuggestNetworkTimePermission();
        Objects.requireNonNull(timeSignal);
        Objects.requireNonNull(suggestion);

        mHandler.post(() -> mTimeDetectorStrategy.suggestNetworkTime(timeSignal));
        mHandler.post(() -> mTimeDetectorStrategy.suggestNetworkTime(suggestion));
    }

    /**
+10 −6
Original line number Diff line number Diff line
@@ -87,7 +87,7 @@ public interface TimeDetectorStrategy extends Dumpable {
    boolean confirmTime(@NonNull UnixEpochTime confirmationTime);

    /** Processes the suggested time from telephony sources. */
    void suggestTelephonyTime(@NonNull TelephonyTimeSuggestion timeSuggestion);
    void suggestTelephonyTime(@NonNull TelephonyTimeSuggestion suggestion);

    /**
     * Processes the suggested manually entered time. Returns {@code false} if the suggestion was
@@ -98,11 +98,15 @@ public interface TimeDetectorStrategy extends Dumpable {
     * @param bypassUserPolicyChecks {@code true} for device policy manager use cases where device
     *   policy restrictions that should apply to actual users can be ignored
     */
    boolean suggestManualTime(@UserIdInt int userId, @NonNull ManualTimeSuggestion timeSuggestion,
    boolean suggestManualTime(@UserIdInt int userId, @NonNull ManualTimeSuggestion suggestion,
            boolean bypassUserPolicyChecks);

    /** Processes the suggested time from network sources. */
    void suggestNetworkTime(@NonNull NetworkTimeSuggestion timeSuggestion);
    /**
     * Processes the suggested network time. The suggestion may not be used to set the device's time
     * depending on device configuration and user settings, but can replace previous network
     * suggestions received.
     */
    void suggestNetworkTime(@NonNull NetworkTimeSuggestion suggestion);

    /**
     * Returns the latest (accepted) network time suggestion. Returns {@code null} if there isn't
@@ -119,10 +123,10 @@ public interface TimeDetectorStrategy extends Dumpable {
    void clearLatestNetworkSuggestion();

    /** Processes the suggested time from gnss sources. */
    void suggestGnssTime(@NonNull GnssTimeSuggestion timeSuggestion);
    void suggestGnssTime(@NonNull GnssTimeSuggestion suggestion);

    /** Processes the suggested time from external sources. */
    void suggestExternalTime(@NonNull ExternalTimeSuggestion timeSuggestion);
    void suggestExternalTime(@NonNull ExternalTimeSuggestion suggestion);

    // Utility methods below are to be moved to a better home when one becomes more obvious.

Loading