summaryrefslogtreecommitdiffstats
path: root/packages/Shell
diff options
context:
space:
mode:
authorJeff Sharkey <jsharkey@android.com>2013-03-14 14:11:57 -0700
committerJeff Sharkey <jsharkey@android.com>2013-03-14 15:04:12 -0700
commitd9526907d1a51ef0b35bfbbeee43fa209d8b5bbf (patch)
tree50c702ba28640043ea40c152424f4beff44893fc /packages/Shell
parent67bea2ef32198e5e246715998c1d907b73225761 (diff)
downloadframeworks_base-d9526907d1a51ef0b35bfbbeee43fa209d8b5bbf.zip
frameworks_base-d9526907d1a51ef0b35bfbbeee43fa209d8b5bbf.tar.gz
frameworks_base-d9526907d1a51ef0b35bfbbeee43fa209d8b5bbf.tar.bz2
Move deleteOlderFiles() to framework, tests.
Supports both age and count based constraints. Added light docs and tests to verify behavior. Bug: 8387555 Change-Id: If4d0dac8bc54ce705c2a339bc09a60ea748728b8
Diffstat (limited to 'packages/Shell')
-rw-r--r--packages/Shell/src/com/android/shell/BugreportReceiver.java42
1 files changed, 12 insertions, 30 deletions
diff --git a/packages/Shell/src/com/android/shell/BugreportReceiver.java b/packages/Shell/src/com/android/shell/BugreportReceiver.java
index 3b1ebf4..de04909 100644
--- a/packages/Shell/src/com/android/shell/BugreportReceiver.java
+++ b/packages/Shell/src/com/android/shell/BugreportReceiver.java
@@ -29,17 +29,16 @@ import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.AsyncTask;
+import android.os.FileUtils;
import android.os.SystemProperties;
import android.support.v4.content.FileProvider;
-import android.util.Log;
+import android.text.format.DateUtils;
import android.util.Patterns;
import com.google.android.collect.Lists;
import java.io.File;
import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Comparator;
/**
* Receiver that handles finished bugreports, usually by attaching them to an
@@ -54,10 +53,15 @@ public class BugreportReceiver extends BroadcastReceiver {
private static final String EXTRA_SCREENSHOT = "android.intent.extra.SCREENSHOT";
/**
- * Number of bugreports to retain before deleting the oldest; 4 reports and
- * 4 screenshots are roughly 17MB of disk space.
+ * Always keep the newest 8 bugreport files; 4 reports and 4 screenshots are
+ * roughly 17MB of disk space.
*/
- private static final int NUM_OLD_FILES = 8;
+ private static final int MIN_KEEP_COUNT = 8;
+
+ /**
+ * Always keep bugreports taken in the last week.
+ */
+ private static final long MIN_KEEP_AGE = DateUtils.WEEK_IN_MILLIS;
@Override
public void onReceive(Context context, Intent intent) {
@@ -94,7 +98,8 @@ public class BugreportReceiver extends BroadcastReceiver {
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void... params) {
- deleteOlderFiles(bugreportFile.getParentFile(), NUM_OLD_FILES);
+ FileUtils.deleteOlderFiles(
+ bugreportFile.getParentFile(), MIN_KEEP_COUNT, MIN_KEEP_AGE);
result.finish();
return null;
}
@@ -164,28 +169,6 @@ public class BugreportReceiver extends BroadcastReceiver {
return foundAccount;
}
- /**
- * Delete the oldest files in given directory until only the requested
- * number remain.
- */
- private static void deleteOlderFiles(File dir, int retainNum) {
- final File[] files = dir.listFiles();
- if (files == null) return;
-
- Arrays.sort(files, new ModifiedComparator());
- for (int i = retainNum; i < files.length; i++) {
- Log.d(TAG, "Deleting old file " + files[i]);
- files[i].delete();
- }
- }
-
- private static class ModifiedComparator implements Comparator<File> {
- @Override
- public int compare(File lhs, File rhs) {
- return (int) (rhs.lastModified() - lhs.lastModified());
- }
- }
-
private static File getFileExtra(Intent intent, String key) {
final String path = intent.getStringExtra(key);
if (path != null) {
@@ -194,5 +177,4 @@ public class BugreportReceiver extends BroadcastReceiver {
return null;
}
}
-
}