Remove UsageStats files older than 2 years.
As a privacy improvement, do not store usage stats data that is older than 2 years. Previously, stats were kept for 3 years. This will also help reduce the storage taken up by stats and improve the performance of query stats API calls which require files to be read from disk since the number of files read are significantly less. Bug: 148524623 Test: atest UsageStatsDatabaseTest Change-Id: I159914a87ba4137f0f3d869c69abf3b16ae77657
This commit is contained in:
@@ -178,7 +178,12 @@ public class UsageStatsDatabase {
|
||||
}
|
||||
|
||||
checkVersionAndBuildLocked();
|
||||
indexFilesLocked();
|
||||
// Perform a pruning of older files if there was an upgrade, otherwise do indexing.
|
||||
if (mUpgradePerformed) {
|
||||
prune(currentTimeMillis); // prune performs an indexing when done
|
||||
} else {
|
||||
indexFilesLocked();
|
||||
}
|
||||
|
||||
// Delete files that are in the future.
|
||||
for (TimeSparseArray<AtomicFile> files : mSortedStatFiles) {
|
||||
@@ -914,26 +919,31 @@ public class UsageStatsDatabase {
|
||||
*/
|
||||
public void prune(final long currentTimeMillis) {
|
||||
synchronized (mLock) {
|
||||
// prune all files older than 2 years in the yearly directory
|
||||
mCal.setTimeInMillis(currentTimeMillis);
|
||||
mCal.addYears(-3);
|
||||
mCal.addYears(-2);
|
||||
pruneFilesOlderThan(mIntervalDirs[UsageStatsManager.INTERVAL_YEARLY],
|
||||
mCal.getTimeInMillis());
|
||||
|
||||
// prune all files older than 6 months in the monthly directory
|
||||
mCal.setTimeInMillis(currentTimeMillis);
|
||||
mCal.addMonths(-6);
|
||||
pruneFilesOlderThan(mIntervalDirs[UsageStatsManager.INTERVAL_MONTHLY],
|
||||
mCal.getTimeInMillis());
|
||||
|
||||
// prune all files older than 4 weeks in the weekly directory
|
||||
mCal.setTimeInMillis(currentTimeMillis);
|
||||
mCal.addWeeks(-4);
|
||||
pruneFilesOlderThan(mIntervalDirs[UsageStatsManager.INTERVAL_WEEKLY],
|
||||
mCal.getTimeInMillis());
|
||||
|
||||
// prune all files older than 10 days in the weekly directory
|
||||
mCal.setTimeInMillis(currentTimeMillis);
|
||||
mCal.addDays(-10);
|
||||
pruneFilesOlderThan(mIntervalDirs[UsageStatsManager.INTERVAL_DAILY],
|
||||
mCal.getTimeInMillis());
|
||||
|
||||
// prune chooser counts for all usage stats older than the defined period
|
||||
mCal.setTimeInMillis(currentTimeMillis);
|
||||
mCal.addDays(-SELECTION_LOG_RETENTION_LEN);
|
||||
for (int i = 0; i < mIntervalDirs.length; ++i) {
|
||||
|
||||
Reference in New Issue
Block a user