Use elapsed-time in AppTimeLimitController.

Bug: 181983817
Test: atest AppTimeLimitControllerTests
Change-Id: Ia0f20475ebd54039a1a4fd3206d730a8d5649765
This commit is contained in:
Varun Shah
2021-04-09 14:46:43 -07:00
parent 44b4d77808
commit 911ef52179
2 changed files with 13 additions and 14 deletions

View File

@@ -91,7 +91,7 @@ public class AppTimeLimitControllerTests {
private HandlerThread mThread;
private long mUptimeMillis;
private long mElapsedTime;
AppTimeLimitController.TimeLimitCallbackListener mListener =
new AppTimeLimitController.TimeLimitCallbackListener() {
@@ -116,8 +116,8 @@ public class AppTimeLimitControllerTests {
}
@Override
protected long getUptimeMillis() {
return mUptimeMillis;
protected long getElapsedRealtime() {
return mElapsedTime;
}
@Override
@@ -1108,6 +1108,6 @@ public class AppTimeLimitControllerTests {
}
private void setTime(long time) {
mUptimeMillis = time;
mElapsedTime = time;
}
}

View File

@@ -536,14 +536,13 @@ public class AppTimeLimitController {
long getUsageRemaining() {
// If there is currently an active session, account for its usage
if (mActives > 0) {
return mTimeLimitMs - mUsageTimeMs - (getUptimeMillis() - mLastKnownUsageTimeMs);
return mTimeLimitMs - mUsageTimeMs - (getElapsedRealtime() - mLastKnownUsageTimeMs);
} else {
return mTimeLimitMs - mUsageTimeMs;
}
}
}
private class MyHandler extends Handler {
static final int MSG_CHECK_TIMEOUT = 1;
static final int MSG_INFORM_LIMIT_REACHED_LISTENER = 2;
@@ -558,7 +557,7 @@ public class AppTimeLimitController {
switch (msg.what) {
case MSG_CHECK_TIMEOUT:
synchronized (mLock) {
((UsageGroup) msg.obj).checkTimeout(getUptimeMillis());
((UsageGroup) msg.obj).checkTimeout(getElapsedRealtime());
}
break;
case MSG_INFORM_LIMIT_REACHED_LISTENER:
@@ -585,8 +584,8 @@ public class AppTimeLimitController {
/** Overrideable by a test */
@VisibleForTesting
protected long getUptimeMillis() {
return SystemClock.uptimeMillis();
protected long getElapsedRealtime() {
return SystemClock.elapsedRealtime();
}
/** Overrideable for testing purposes */
@@ -760,7 +759,7 @@ public class AppTimeLimitController {
}
user.addUsageGroup(group);
noteActiveLocked(user, group, getUptimeMillis());
noteActiveLocked(user, group, getElapsedRealtime());
}
}
@@ -813,7 +812,7 @@ public class AppTimeLimitController {
observerApp.sessionUsageGroups.append(observerId, group);
user.addUsageGroup(group);
noteActiveLocked(user, group, getUptimeMillis());
noteActiveLocked(user, group, getElapsedRealtime());
}
}
@@ -869,7 +868,7 @@ public class AppTimeLimitController {
}
user.addUsageGroup(group);
noteActiveLocked(user, group, getUptimeMillis());
noteActiveLocked(user, group, getElapsedRealtime());
}
}
@@ -914,7 +913,7 @@ public class AppTimeLimitController {
return;
}
}
final long currentTime = getUptimeMillis();
final long currentTime = getElapsedRealtime();
user.currentlyActive.put(name, ONE);
@@ -964,7 +963,7 @@ public class AppTimeLimitController {
}
user.currentlyActive.removeAt(index);
final long currentTime = getUptimeMillis();
final long currentTime = getElapsedRealtime();
// Check if any of the groups need to watch for this entity
ArrayList<UsageGroup> groups = user.observedMap.get(name);