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

Commit 02b348bc authored by Neil Fuller's avatar Neil Fuller Committed by Android (Google) Code Review
Browse files

Merge "TimeServiceHelper changes to assist in next steps"

parents 676d4eaa 7cecf024
Loading
Loading
Loading
Loading
+7 −22
Original line number Diff line number Diff line
@@ -19,7 +19,6 @@ package com.android.internal.telephony;
import android.content.ContentResolver;
import android.content.Context;
import android.os.PowerManager;
import android.os.SystemClock;
import android.os.SystemProperties;
import android.provider.Settings;
import android.telephony.Rlog;
@@ -99,20 +98,6 @@ public class NitzStateMachine {
            return ignoreNitz != null && ignoreNitz.equals("yes");
        }

        /**
         * Returns the same value as {@link System#currentTimeMillis()}.
         */
        public long currentTimeMillis() {
            return System.currentTimeMillis();
        }

        /**
         * Returns the same value as {@link SystemClock#elapsedRealtime()}.
         */
        public long elapsedRealtime() {
            return SystemClock.elapsedRealtime();
        }

        public String getNetworkCountryIsoForPhone() {
            return mTelephonyManager.getNetworkCountryIsoForPhone(mPhone.getPhoneId());
        }
@@ -285,7 +270,7 @@ public class NitzStateMachine {
                            // Use the time that came with the NITZ offset that we think is bogus:
                            // we just interpret it as local time.
                            long ctm = nitzData.getCurrentTimeInMillis();
                            long delayAdjustedCtm = ctm + (mDeviceState.elapsedRealtime()
                            long delayAdjustedCtm = ctm + (mTimeServiceHelper.elapsedRealtime()
                                    - mLatestNitzSignal.mElapsedRealtime);
                            long tzOffset = zone.getOffset(delayAdjustedCtm);
                            if (DBG) {
@@ -484,7 +469,7 @@ public class NitzStateMachine {
                mWakeLock.acquire();

                // Validate the nitzTimeSignal to reject obviously bogus elapsedRealtime values.
                long elapsedRealtime = mDeviceState.elapsedRealtime();
                long elapsedRealtime = mTimeServiceHelper.elapsedRealtime();
                long millisSinceNitzReceived = elapsedRealtime - nitzSignal.mElapsedRealtime;
                if (millisSinceNitzReceived < 0 || millisSinceNitzReceived > Integer.MAX_VALUE) {
                    if (DBG) {
@@ -498,7 +483,7 @@ public class NitzStateMachine {
                // Adjust the NITZ time by the delay since it was received to get the time now.
                long adjustedCurrentTimeMillis =
                        nitzSignal.mValue.getCurrentTimeInMillis() + millisSinceNitzReceived;
                long gained = adjustedCurrentTimeMillis - mDeviceState.currentTimeMillis();
                long gained = adjustedCurrentTimeMillis - mTimeServiceHelper.currentTimeMillis();

                if (mTimeServiceHelper.isTimeDetectionEnabled()) {
                    String logMsg = "handleTimeFromNitz:"
@@ -511,8 +496,8 @@ public class NitzStateMachine {
                        logMsg += ": First update received.";
                        setAndBroadcastNetworkSetTime(logMsg, adjustedCurrentTimeMillis);
                    } else {
                        long elapsedRealtimeSinceLastSaved =
                                mDeviceState.elapsedRealtime() - mSavedNitzTime.mElapsedRealtime;
                        long elapsedRealtimeSinceLastSaved = mTimeServiceHelper.elapsedRealtime()
                                - mSavedNitzTime.mElapsedRealtime;
                        int nitzUpdateSpacing = mDeviceState.getNitzUpdateSpacingMillis();
                        int nitzUpdateDiff = mDeviceState.getNitzUpdateDiffMillis();
                        if (elapsedRealtimeSinceLastSaved > nitzUpdateSpacing
@@ -588,7 +573,7 @@ public class NitzStateMachine {
                // Acquire the wakelock as we're reading the elapsed realtime clock here.
                mWakeLock.acquire();

                long elapsedRealtime = mDeviceState.elapsedRealtime();
                long elapsedRealtime = mTimeServiceHelper.elapsedRealtime();
                String msg = "mSavedNitzTime: Reverting to NITZ time"
                        + " elapsedRealtime=" + elapsedRealtime
                        + " mSavedNitzTime=" + mSavedNitzTime;
@@ -660,7 +645,7 @@ public class NitzStateMachine {
     */
    private void updateTimeZoneByNetworkCountryCode(String iso) {
        CountryResult lookupResult = mTimeZoneLookupHelper.lookupByCountry(
                iso, mDeviceState.currentTimeMillis());
                iso, mTimeServiceHelper.currentTimeMillis());
        if (lookupResult != null && lookupResult.allZonesHaveSameOffset) {
            String logMsg = "updateTimeZoneByNetworkCountryCode: set time"
                    + " lookupResult=" + lookupResult
+14 −0
Original line number Diff line number Diff line
@@ -90,6 +90,20 @@ public class TimeServiceHelper {
                });
    }

    /**
     * Returns the same value as {@link System#currentTimeMillis()}.
     */
    public long currentTimeMillis() {
        return System.currentTimeMillis();
    }

    /**
     * Returns the same value as {@link SystemClock#elapsedRealtime()}.
     */
    public long elapsedRealtime() {
        return SystemClock.elapsedRealtime();
    }

    /**
     * Returns true if the device has an explicit time zone set.
     */
+11 −11
Original line number Diff line number Diff line
@@ -66,8 +66,8 @@ public class NitzStateMachineTest extends TelephonyTest {
        when(mDeviceState.getIgnoreNitz()).thenReturn(false);
        when(mDeviceState.getNitzUpdateDiffMillis()).thenReturn(2000);
        when(mDeviceState.getNitzUpdateSpacingMillis()).thenReturn(1000 * 60 * 10);
        when(mDeviceState.elapsedRealtime()).thenReturn(123456789L);
        when(mDeviceState.currentTimeMillis()).thenReturn(987654321L);
        when(mTimeServiceHelper.elapsedRealtime()).thenReturn(123456789L);
        when(mTimeServiceHelper.currentTimeMillis()).thenReturn(987654321L);

        mNitzStateMachine = new NitzStateMachine(
                mPhone, mTimeServiceHelper, mDeviceState, mTimeZoneLookupHelper);
@@ -82,8 +82,6 @@ public class NitzStateMachineTest extends TelephonyTest {
        verify(mDeviceState, atLeast(0)).getIgnoreNitz();
        verify(mDeviceState, atLeast(0)).getNitzUpdateDiffMillis();
        verify(mDeviceState, atLeast(0)).getNitzUpdateSpacingMillis();
        verify(mDeviceState, atLeast(0)).elapsedRealtime();
        verify(mDeviceState, atLeast(0)).currentTimeMillis();
        verify(mDeviceState, atLeast(0)).getNetworkCountryIsoForPhone();
        verifyNoMoreInteractions(mDeviceState);

@@ -94,6 +92,8 @@ public class NitzStateMachineTest extends TelephonyTest {
        verify(mTimeServiceHelper, atLeast(0)).isTimeDetectionEnabled();
        verify(mTimeServiceHelper, atLeast(0)).isTimeZoneDetectionEnabled();
        verify(mTimeServiceHelper, atLeast(0)).isTimeZoneSettingInitialized();
        verify(mTimeServiceHelper, atLeast(0)).elapsedRealtime();
        verify(mTimeServiceHelper, atLeast(0)).currentTimeMillis();
        verifyNoMoreInteractions(mTimeServiceHelper);

        super.tearDown();
@@ -126,7 +126,7 @@ public class NitzStateMachineTest extends TelephonyTest {

        // Check resulting state and side effects.
        long expectedAdjustedCurrentTimeMillis =
                testNitzSignal.getAdjustedCurrentTimeMillis(mDeviceState.elapsedRealtime());
                testNitzSignal.getAdjustedCurrentTimeMillis(mTimeServiceHelper.elapsedRealtime());

        verifyTimeServiceTimeZoneWasSet(testLookupResult.zoneId);
        verifyTimeServiceTimeWasSet(expectedAdjustedCurrentTimeMillis);
@@ -165,7 +165,7 @@ public class NitzStateMachineTest extends TelephonyTest {

        // Check resulting state and side effects.
        long expectedAdjustedCurrentTimeMillis =
                testNitzSignal.getAdjustedCurrentTimeMillis(mDeviceState.elapsedRealtime());
                testNitzSignal.getAdjustedCurrentTimeMillis(mTimeServiceHelper.elapsedRealtime());

        verifyTimeServiceTimeZoneWasNotSet();
        verifyTimeServiceTimeWasSet(expectedAdjustedCurrentTimeMillis);
@@ -312,10 +312,10 @@ public class NitzStateMachineTest extends TelephonyTest {
    }

    private void incrementSimulatedDeviceClock(int incMillis) {
        long currentElapsedRealtime = mDeviceState.elapsedRealtime();
        when(mDeviceState.elapsedRealtime()).thenReturn(currentElapsedRealtime + incMillis);
        long currentTimeMillis = mDeviceState.currentTimeMillis();
        when(mDeviceState.elapsedRealtime()).thenReturn(currentTimeMillis + incMillis);
        long currentElapsedRealtime = mTimeServiceHelper.elapsedRealtime();
        when(mTimeServiceHelper.elapsedRealtime()).thenReturn(currentElapsedRealtime + incMillis);
        long currentTimeMillis = mTimeServiceHelper.currentTimeMillis();
        when(mTimeServiceHelper.elapsedRealtime()).thenReturn(currentTimeMillis + incMillis);
    }

    private static long createTime(TimeZone timeZone, int year, int monthOfYear, int dayOfMonth,
@@ -331,7 +331,7 @@ public class NitzStateMachineTest extends TelephonyTest {
     * receivedRealtimeMillis from the current {@code mDeviceState.elapsedRealtime()}.
     */
    private TestNitzSignal createTestNitzSignal() {
        long receivedRealtimeMillis = mDeviceState.elapsedRealtime();
        long receivedRealtimeMillis = mTimeServiceHelper.elapsedRealtime();
        // Create an arbitrary time.
        long timeMillis = createTime(TimeZone.getTimeZone("UTC"), 2017, 1, 2, 12, 45, 25);
        // Create arbitrary NITZ data.