Make the NTP Cache max-age gservices-settable
Trying to make Throttle polling more energy efficient. bug:2708119 Change-Id: I2b75639e202dcbcee11047c43407a22de04ce350
This commit is contained in:
@@ -3332,6 +3332,14 @@ public final class Settings {
|
||||
*/
|
||||
public static final String THROTTLE_HELP_URI = "throttle_help_uri";
|
||||
|
||||
/**
|
||||
* The length of time in Sec that we allow our notion of NTP time
|
||||
* to be cached before we refresh it
|
||||
* @hide
|
||||
*/
|
||||
public static final String THROTTLE_MAX_NTP_CACHE_AGE_SEC =
|
||||
"throttle_max_ntp_cache_age_sec";
|
||||
|
||||
|
||||
/**
|
||||
* @hide
|
||||
|
||||
@@ -197,6 +197,8 @@ public class ThrottleService extends IThrottleManager.Stub {
|
||||
Settings.Secure.THROTTLE_NOTIFICATION_TYPE), false, this);
|
||||
resolver.registerContentObserver(Settings.Secure.getUriFor(
|
||||
Settings.Secure.THROTTLE_HELP_URI), false, this);
|
||||
resolver.registerContentObserver(Settings.Secure.getUriFor(
|
||||
Settings.Secure.THROTTLE_MAX_NTP_CACHE_AGE_SEC), false, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -432,10 +434,13 @@ public class ThrottleService extends IThrottleManager.Stub {
|
||||
mPolicyNotificationsAllowedMask = Settings.Secure.getInt(mContext.getContentResolver(),
|
||||
Settings.Secure.THROTTLE_NOTIFICATION_TYPE, defaultNotificationType);
|
||||
|
||||
mMaxNtpCacheAgeSec = Settings.Secure.getInt(mContext.getContentResolver(),
|
||||
Settings.Secure.THROTTLE_MAX_NTP_CACHE_AGE_SEC, MAX_NTP_CACHE_AGE_SEC);
|
||||
|
||||
Slog.d(TAG, "onPolicyChanged testing=" + testing +", period=" + mPolicyPollPeriodSec +
|
||||
", threshold=" + mPolicyThreshold + ", value=" + mPolicyThrottleValue +
|
||||
", resetDay=" + mPolicyResetDay + ", noteType=" +
|
||||
mPolicyNotificationsAllowedMask);
|
||||
mPolicyNotificationsAllowedMask + ", maxNtpCacheAge=" + mMaxNtpCacheAgeSec);
|
||||
|
||||
// force updates
|
||||
mThrottleIndex = THROTTLE_INDEX_UNINITIALIZED;
|
||||
@@ -715,8 +720,9 @@ public class ThrottleService extends IThrottleManager.Stub {
|
||||
getBestTime();
|
||||
}
|
||||
|
||||
private static final int MAX_NTP_CACHE_AGE = 30 * 1000;
|
||||
private static final int MAX_NTP_CACHE_AGE_SEC = 60 * 60 * 24; // 1 day
|
||||
private static final int MAX_NTP_FETCH_WAIT = 10 * 1000;
|
||||
private int mMaxNtpCacheAgeSec = MAX_NTP_CACHE_AGE_SEC;
|
||||
private long cachedNtp;
|
||||
private long cachedNtpTimestamp;
|
||||
|
||||
@@ -724,7 +730,7 @@ public class ThrottleService extends IThrottleManager.Stub {
|
||||
if (mNtpServer != null) {
|
||||
if (mNtpActive) {
|
||||
long ntpAge = SystemClock.elapsedRealtime() - cachedNtpTimestamp;
|
||||
if (ntpAge < MAX_NTP_CACHE_AGE) {
|
||||
if (ntpAge < mMaxNtpCacheAgeSec * 1000) {
|
||||
if (VDBG) Slog.v(TAG, "using cached time");
|
||||
return cachedNtp + ntpAge;
|
||||
}
|
||||
@@ -1091,6 +1097,7 @@ public class ThrottleService extends IThrottleManager.Stub {
|
||||
" seconds.");
|
||||
pw.println("Polling every " + mPolicyPollPeriodSec + " seconds");
|
||||
pw.println("Current Throttle Index is " + mThrottleIndex);
|
||||
pw.println("Max NTP Cache Age is " + mMaxNtpCacheAgeSec);
|
||||
|
||||
for (int i = 0; i < mRecorder.getPeriodCount(); i++) {
|
||||
pw.println(" Period[" + i + "] - read:" + mRecorder.getPeriodRx(i) + ", written:" +
|
||||
|
||||
Reference in New Issue
Block a user