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

Commit 12ecd7e5 authored by Neil Fuller's avatar Neil Fuller
Browse files

Remove NitzStateMachine.getSavedTimeZoneId()

Remove the NitzStateMachine.getSavedTimeZoneId() method.

The reasoning is as follows:
1) It is only used from one place.
2) The logic that uses it appears unnecessarily complicated.
3) Preserving the "get me the last "high quality" time zone worked out
by NitzStateMachine will be difficult to do once the judgement around
quality moves to the system server.
4) It's not clear how critical this one code path is.

Before this change, ServiceStateTracker preferred using
getSaveTimeZoneId() (which returns the ID of the last "resolved" time
zone) over using information from the last NITZ data received via
getCachedNitzData(). However, the time zone ID is determined by using
the NITZ data. The later call to:

mHbpcdUtils.getMcc(sid, utcOffsetHours, (isDst ? 1 : 0), isNitzTimeZone)

is basically using information available from the NITZ signal but arrived
at indirectly.

It doesn't seem too bad to just use the original information provided by
the carrier. The code has been simplified to only use
getCachedNitzData() and isNitzTimeZone boolean is now always set to true
when getMcc() is called and NITZ data was used.

Bug: 140712361
Test: treehugger
Change-Id: I218c4e441baa78b5ad9876e566b128202f49be35
parent 27808673
Loading
Loading
Loading
Loading
+0 −6
Original line number Diff line number Diff line
@@ -83,12 +83,6 @@ public interface NitzStateMachine {
     */
    NitzData getCachedNitzData();

    /**
     * Returns the time zone ID from the most recent time that a time zone could be determined by
     * this state machine.
     */
    String getSavedTimeZoneId();

    /**
     * A proxy over read-only device state that allows things like system properties, elapsed
     * realtime clock to be faked for tests.
+0 −5
Original line number Diff line number Diff line
@@ -535,9 +535,4 @@ public final class NitzStateMachineImpl implements NitzStateMachine {
    public NitzData getCachedNitzData() {
        return mLatestNitzSignal != null ? mLatestNitzSignal.getValue() : null;
    }

    @Override
    public String getSavedTimeZoneId() {
        return mSavedTimeZoneId;
    }
}
+11 −30
Original line number Diff line number Diff line
@@ -38,7 +38,6 @@ import android.content.IntentFilter;
import android.content.SharedPreferences;
import android.content.res.Resources;
import android.hardware.radio.V1_0.CellInfoType;
import android.icu.util.TimeZone;
import android.net.NetworkCapabilities;
import android.os.AsyncResult;
import android.os.BaseBundle;
@@ -3653,39 +3652,21 @@ public class ServiceStateTracker extends Handler {
            return operatorNumeric;
        }

        // resolve the mcc from sid;
        // if mNitzState.getSavedTimeZoneId() is null, TimeZone would get the default timeZone,
        // and the mNitzState.fixTimeZone() couldn't help, because it depends on operator Numeric;
        // if the sid is conflict and timezone is unavailable, the mcc may be not right.
        boolean isNitzTimeZone;
        TimeZone tzone;
        if (mNitzState.getSavedTimeZoneId() != null) {
            tzone = TimeZone.getTimeZone(mNitzState.getSavedTimeZoneId());
            isNitzTimeZone = true;
        } else {
            NitzData lastNitzData = mNitzState.getCachedNitzData();
            if (lastNitzData == null) {
                tzone = null;
            } else {
                tzone = TimeZoneLookupHelper.guessZoneByNitzStatic(lastNitzData);
                if (ServiceStateTracker.DBG) {
                    log("fixUnknownMcc(): guessNitzTimeZone returned "
                            + (tzone == null ? tzone : tzone.getID()));
                }
            }
            isNitzTimeZone = false;
        }

        // resolve the mcc from sid, using time zone information from the latest NITZ signal when
        // available.
        int utcOffsetHours = 0;
        if (tzone != null) {
            utcOffsetHours = tzone.getRawOffset() / MS_PER_HOUR;
        boolean isDst = false;
        boolean isNitzTimeZone = false;
        NitzData lastNitzData = mNitzState.getCachedNitzData();
        if (lastNitzData != null) {
            utcOffsetHours = lastNitzData.getLocalOffsetMillis() / MS_PER_HOUR;
            Integer dstAdjustmentMillis = lastNitzData.getDstAdjustmentMillis();
            isDst = (dstAdjustmentMillis != null) && (dstAdjustmentMillis != 0);
            isNitzTimeZone = true;
        }

        NitzData nitzData = mNitzState.getCachedNitzData();
        boolean isDst = nitzData != null && nitzData.isDst();
        int mcc = mHbpcdUtils.getMcc(sid, utcOffsetHours, (isDst ? 1 : 0), isNitzTimeZone);
        if (mcc > 0) {
            operatorNumeric = Integer.toString(mcc) + DEFAULT_MNC;
            operatorNumeric = mcc + DEFAULT_MNC;
        }
        return operatorNumeric;
    }
+0 −29
Original line number Diff line number Diff line
@@ -175,7 +175,6 @@ public class NitzStateMachineImplTest extends TelephonyTest {
        // Check NitzStateMachine state.
        assertTrue(mNitzStateMachine.getNitzTimeZoneDetectionSuccessful());
        assertEquals(nitzSignal.getValue(), mNitzStateMachine.getCachedNitzData());
        assertEquals(scenario.getTimeZoneId(), mNitzStateMachine.getSavedTimeZoneId());
    }

    @Test
@@ -199,7 +198,6 @@ public class NitzStateMachineImplTest extends TelephonyTest {
        // Check NitzStateMachine state.
        assertTrue(mNitzStateMachine.getNitzTimeZoneDetectionSuccessful());
        assertEquals(nitzSignal.getValue(), mNitzStateMachine.getCachedNitzData());
        assertEquals(scenario.getTimeZoneId(), mNitzStateMachine.getSavedTimeZoneId());
    }

    @Test
@@ -222,7 +220,6 @@ public class NitzStateMachineImplTest extends TelephonyTest {
        // Check NitzStateMachine state.
        assertTrue(mNitzStateMachine.getNitzTimeZoneDetectionSuccessful());
        assertEquals(nitzSignal.getValue(), mNitzStateMachine.getCachedNitzData());
        assertEquals(scenario.getTimeZoneId(), mNitzStateMachine.getSavedTimeZoneId());
    }

    @Test
@@ -245,7 +242,6 @@ public class NitzStateMachineImplTest extends TelephonyTest {
        // Check NitzStateMachine state.
        assertTrue(mNitzStateMachine.getNitzTimeZoneDetectionSuccessful());
        assertEquals(nitzSignal.getValue(), mNitzStateMachine.getCachedNitzData());
        assertEquals(scenario.getTimeZoneId(), mNitzStateMachine.getSavedTimeZoneId());
    }

    @Test
@@ -266,7 +262,6 @@ public class NitzStateMachineImplTest extends TelephonyTest {
        // Check NitzStateMachine state.
        assertFalse(mNitzStateMachine.getNitzTimeZoneDetectionSuccessful());
        assertEquals(nitzSignal.getValue(), mNitzStateMachine.getCachedNitzData());
        assertNull(mNitzStateMachine.getSavedTimeZoneId());

        // Simulate the country code becoming known.
        script.countryReceived(scenario.getNetworkCountryIsoCode())
@@ -276,7 +271,6 @@ public class NitzStateMachineImplTest extends TelephonyTest {
        // Check NitzStateMachine state.
        assertTrue(mNitzStateMachine.getNitzTimeZoneDetectionSuccessful());
        assertEquals(nitzSignal.getValue(), mNitzStateMachine.getCachedNitzData());
        assertEquals(scenario.getTimeZoneId(), mNitzStateMachine.getSavedTimeZoneId());
    }

    @Test
@@ -297,7 +291,6 @@ public class NitzStateMachineImplTest extends TelephonyTest {
        // Check NitzStateMachine state.
        assertFalse(mNitzStateMachine.getNitzTimeZoneDetectionSuccessful());
        assertEquals(nitzSignal.getValue(), mNitzStateMachine.getCachedNitzData());
        assertNull(mNitzStateMachine.getSavedTimeZoneId());

        // Simulate the country code becoming known.
        script.countryReceived(scenario.getNetworkCountryIsoCode());
@@ -308,7 +301,6 @@ public class NitzStateMachineImplTest extends TelephonyTest {
        // Check NitzStateMachine state.
        assertTrue(mNitzStateMachine.getNitzTimeZoneDetectionSuccessful());
        assertEquals(nitzSignal.getValue(), mNitzStateMachine.getCachedNitzData());
        assertEquals(scenario.getTimeZoneId(), mNitzStateMachine.getSavedTimeZoneId());
    }

    @Test
@@ -330,7 +322,6 @@ public class NitzStateMachineImplTest extends TelephonyTest {
        // Check NitzStateMachine state.
        assertFalse(mNitzStateMachine.getNitzTimeZoneDetectionSuccessful());
        assertEquals(goodNitzSignal.getValue(), mNitzStateMachine.getCachedNitzData());
        assertNull(mNitzStateMachine.getSavedTimeZoneId());

        // Simulate the country code becoming known.
        script.countryReceived(scenario.getNetworkCountryIsoCode())
@@ -339,7 +330,6 @@ public class NitzStateMachineImplTest extends TelephonyTest {
        // Check NitzStateMachine state.
        assertTrue(mNitzStateMachine.getNitzTimeZoneDetectionSuccessful());
        assertEquals(goodNitzSignal.getValue(), mNitzStateMachine.getCachedNitzData());
        assertEquals(scenario.getTimeZoneId(), mNitzStateMachine.getSavedTimeZoneId());
    }

    @Test
@@ -361,7 +351,6 @@ public class NitzStateMachineImplTest extends TelephonyTest {
        // Check NitzStateMachine state.
        assertFalse(mNitzStateMachine.getNitzTimeZoneDetectionSuccessful());
        assertNull(mNitzStateMachine.getCachedNitzData());
        assertEquals(scenario.getTimeZoneId(), mNitzStateMachine.getSavedTimeZoneId());

        // Simulate receiving an NITZ signal.
        script.nitzReceived(goodNitzSignal)
@@ -373,7 +362,6 @@ public class NitzStateMachineImplTest extends TelephonyTest {
        // Check NitzStateMachine state.
        assertTrue(mNitzStateMachine.getNitzTimeZoneDetectionSuccessful());
        assertEquals(goodNitzSignal.getValue(), mNitzStateMachine.getCachedNitzData());
        assertEquals(scenario.getTimeZoneId(), mNitzStateMachine.getSavedTimeZoneId());
    }

    @Test
@@ -404,7 +392,6 @@ public class NitzStateMachineImplTest extends TelephonyTest {
        // Check NitzStateMachine state.
        assertFalse(mNitzStateMachine.getNitzTimeZoneDetectionSuccessful());
        assertEquals(badNitzSignal.getValue(), mNitzStateMachine.getCachedNitzData());
        assertNull(mNitzStateMachine.getSavedTimeZoneId());

        // Simulate the country code becoming known.
        script.countryReceived(scenario.getNetworkCountryIsoCode())
@@ -413,7 +400,6 @@ public class NitzStateMachineImplTest extends TelephonyTest {
        // Check NitzStateMachine state.
        assertFalse(mNitzStateMachine.getNitzTimeZoneDetectionSuccessful());
        assertEquals(badNitzSignal.getValue(), mNitzStateMachine.getCachedNitzData());
        assertEquals(scenario.getTimeZoneId(), mNitzStateMachine.getSavedTimeZoneId());
    }

    @Test
@@ -443,7 +429,6 @@ public class NitzStateMachineImplTest extends TelephonyTest {
        // Check NitzStateMachine state.
        assertFalse(mNitzStateMachine.getNitzTimeZoneDetectionSuccessful());
        assertNull(mNitzStateMachine.getCachedNitzData());
        assertEquals(scenario.getTimeZoneId(), mNitzStateMachine.getSavedTimeZoneId());

        // Simulate receiving an NITZ signal.
        script.nitzReceived(badNitzSignal)
@@ -453,7 +438,6 @@ public class NitzStateMachineImplTest extends TelephonyTest {
        // Check NitzStateMachine state.
        assertFalse(mNitzStateMachine.getNitzTimeZoneDetectionSuccessful());
        assertEquals(badNitzSignal.getValue(), mNitzStateMachine.getCachedNitzData());
        assertEquals(scenario.getTimeZoneId(), mNitzStateMachine.getSavedTimeZoneId());
    }

    @Test
@@ -484,7 +468,6 @@ public class NitzStateMachineImplTest extends TelephonyTest {
        // Check NitzStateMachine state.
        assertFalse(mNitzStateMachine.getNitzTimeZoneDetectionSuccessful());
        assertEquals(badNitzSignal.getValue(), mNitzStateMachine.getCachedNitzData());
        assertNull(mNitzStateMachine.getSavedTimeZoneId());

        // Simulate the country code becoming known.
        script.countryReceived(scenario.getNetworkCountryIsoCode())
@@ -495,7 +478,6 @@ public class NitzStateMachineImplTest extends TelephonyTest {
        // Check NitzStateMachine state.
        assertFalse(mNitzStateMachine.getNitzTimeZoneDetectionSuccessful());
        assertEquals(badNitzSignal.getValue(), mNitzStateMachine.getCachedNitzData());
        assertNull(mNitzStateMachine.getSavedTimeZoneId());
    }

    @Test
@@ -526,7 +508,6 @@ public class NitzStateMachineImplTest extends TelephonyTest {
        // Check NitzStateMachine state.
        assertFalse(mNitzStateMachine.getNitzTimeZoneDetectionSuccessful());
        assertNull(mNitzStateMachine.getCachedNitzData());
        assertNull(mNitzStateMachine.getSavedTimeZoneId());

        // Simulate receiving an NITZ signal.
        script.nitzReceived(badNitzSignal)
@@ -536,7 +517,6 @@ public class NitzStateMachineImplTest extends TelephonyTest {
        // Check NitzStateMachine state.
        assertFalse(mNitzStateMachine.getNitzTimeZoneDetectionSuccessful());
        assertEquals(badNitzSignal.getValue(), mNitzStateMachine.getCachedNitzData());
        assertNull(mNitzStateMachine.getSavedTimeZoneId());
    }

    @Test
@@ -570,7 +550,6 @@ public class NitzStateMachineImplTest extends TelephonyTest {
        // Check NitzStateMachine state.
        assertTrue(mNitzStateMachine.getNitzTimeZoneDetectionSuccessful());
        assertEquals(emulatorNitzSignal.getValue(), mNitzStateMachine.getCachedNitzData());
        assertEquals(emulatorTimeZoneId, mNitzStateMachine.getSavedTimeZoneId());
    }

    @Test
@@ -590,7 +569,6 @@ public class NitzStateMachineImplTest extends TelephonyTest {
        // Check NitzStateMachine state.
        assertFalse(mNitzStateMachine.getNitzTimeZoneDetectionSuccessful());
        assertNull(mNitzStateMachine.getCachedNitzData());
        assertNull(mNitzStateMachine.getSavedTimeZoneId());

        // Simulate receiving the NITZ signal.
        TimestampedValue<NitzData> nitzSignal = scenario.createNitzSignal();
@@ -601,7 +579,6 @@ public class NitzStateMachineImplTest extends TelephonyTest {
        // Check NitzStateMachine state.
        assertTrue(mNitzStateMachine.getNitzTimeZoneDetectionSuccessful());
        assertEquals(nitzSignal.getValue(), mNitzStateMachine.getCachedNitzData());
        assertEquals(expectedZoneId, mNitzStateMachine.getSavedTimeZoneId());
    }

    @Test
@@ -623,7 +600,6 @@ public class NitzStateMachineImplTest extends TelephonyTest {
        // Check NitzStateMachine state.
        assertFalse(mNitzStateMachine.getNitzTimeZoneDetectionSuccessful());
        assertEquals(nitzSignal.getValue(), mNitzStateMachine.getCachedNitzData());
        assertNull(mNitzStateMachine.getSavedTimeZoneId());

        // The time zone should be set (but the country is not valid so it's unlikely to be
        // correct).
@@ -632,7 +608,6 @@ public class NitzStateMachineImplTest extends TelephonyTest {
        // Check NitzStateMachine state.
        assertTrue(mNitzStateMachine.getNitzTimeZoneDetectionSuccessful());
        assertEquals(nitzSignal.getValue(), mNitzStateMachine.getCachedNitzData());
        assertEquals(expectedZoneId, mNitzStateMachine.getSavedTimeZoneId());
    }

    @Test
@@ -667,7 +642,6 @@ public class NitzStateMachineImplTest extends TelephonyTest {

        // Check state that NitzStateMachine must expose.
        assertEquals(preflightNitzSignal.getValue(), mNitzStateMachine.getCachedNitzData());
        assertEquals(scenario.getTimeZoneId(), mNitzStateMachine.getSavedTimeZoneId());

        // Boarded flight: Airplane mode turned on / time zone detection still enabled.
        // The NitzStateMachineImpl must lose all state and stop having an opinion about time zone.
@@ -680,7 +654,6 @@ public class NitzStateMachineImplTest extends TelephonyTest {

        // Check state that NitzStateMachine must expose.
        assertNull(mNitzStateMachine.getCachedNitzData());
        assertNull(mNitzStateMachine.getSavedTimeZoneId());

        // Verify there's no time zone opinion by toggling auto time zone off and on.
        script.toggleTimeZoneDetectionEnabled(false)
@@ -705,7 +678,6 @@ public class NitzStateMachineImplTest extends TelephonyTest {

        // Check the state that NitzStateMachine must expose.
        assertNull(mNitzStateMachine.getCachedNitzData());
        assertNull(mNitzStateMachine.getSavedTimeZoneId());

        // Post flight: Device has moved and receives new signals.

@@ -727,7 +699,6 @@ public class NitzStateMachineImplTest extends TelephonyTest {

        // Check state that NitzStateMachine must expose.
        assertEquals(postFlightNitzSignal.getValue(), mNitzStateMachine.getCachedNitzData());
        assertEquals(scenario.getTimeZoneId(), mNitzStateMachine.getSavedTimeZoneId());
    }

    /**