Change the default clock to Clock.systemUTC().

We were using SystemClock.currentNetworkTimeClock() for getting the
creation time of the stage data in LocaleManagerBackupHelper. This clock
cannot be modified by the user and hence the retention CTS tests were
failing. Because those tests manipulate device's system clock to
simulate passage of time.

Bug: 210593602
Test: atest FrameworksServicesTests:LocaleManagerBackupRestoreTest
Test: atest CtsBackupTestCases:AppLocalesBackupTest
Change-Id: Icc2e5d9f6035fa1e24382278f1ca45a6a6c4f32a
This commit is contained in:
Nishant Kumar Singh
2022-02-01 10:37:45 +00:00
parent 5cc91acd5b
commit 51c3623ac8

View File

@@ -31,13 +31,11 @@ import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManagerInternal;
import android.os.BestClock;
import android.os.Binder;
import android.os.HandlerThread;
import android.os.LocaleList;
import android.os.Process;
import android.os.RemoteException;
import android.os.SystemClock;
import android.os.UserHandle;
import android.text.TextUtils;
import android.util.Slog;
@@ -61,7 +59,6 @@ import java.io.UnsupportedEncodingException;
import java.nio.charset.StandardCharsets;
import java.time.Clock;
import java.time.Duration;
import java.time.ZoneOffset;
import java.util.HashMap;
/**
@@ -97,15 +94,10 @@ class LocaleManagerBackupHelper {
LocaleManagerBackupHelper(LocaleManagerService localeManagerService,
PackageManagerInternal pmInternal) {
this(localeManagerService.mContext, localeManagerService, pmInternal, getDefaultClock(),
this(localeManagerService.mContext, localeManagerService, pmInternal, Clock.systemUTC(),
new SparseArray<>());
}
private static @NonNull Clock getDefaultClock() {
return new BestClock(ZoneOffset.UTC, SystemClock.currentNetworkTimeClock(),
Clock.systemUTC());
}
@VisibleForTesting LocaleManagerBackupHelper(Context context,
LocaleManagerService localeManagerService,
PackageManagerInternal pmInternal, Clock clock, SparseArray<StagedData> stagedData) {