diff options
| author | 2016-08-12 13:51:51 -0700 | |
|---|---|---|
| committer | 2016-08-12 14:38:45 -0700 | |
| commit | d42fe85bc93e4a27517555f27a8e7a591a135e19 (patch) | |
| tree | 37a22e74497840ca415073a717336d82eca779c1 | |
| parent | 34910458c474defc2646e48666d9478ef3fc10f5 (diff) | |
Fix incorrect notification about running out of storage space.
Previously, if there were problems generating the boot image, we would
display a notification saying the device is out of storage space,
regardless of whether the device was actually out of storage.
This change makes it so we only display the notification if the device
has less than 250MB when the boot image is missing.
Test: Verify the following sequence does not display the notification:
$ adb shell stop
$ adb shell rm /data/dalvik-cache/arm/*.oat
$ adb shell setprop dalvik.vm.extra-opts -Xnoimage-dex2oat
$ adb shell start
Test: Verify the following sequence does display the notification:
$ adb shell stop
$ adb shell rm /data/dalvik-cache/arm/*.oat
$ adb shell setprop dalvik.vm.extra-opts -Xnoimage-dex2oat
$ adb shell setprop debug.freemem 104857600
$ adb shell start
Bug: 28931369
Change-Id: Ia2291bf674af063a55f339d2a0411e670ca16ba2
| -rw-r--r-- | services/core/java/com/android/server/storage/DeviceStorageMonitorService.java | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/storage/DeviceStorageMonitorService.java b/services/core/java/com/android/server/storage/DeviceStorageMonitorService.java index 0ae171768199..90c711a47941 100644 --- a/services/core/java/com/android/server/storage/DeviceStorageMonitorService.java +++ b/services/core/java/com/android/server/storage/DeviceStorageMonitorService.java @@ -87,6 +87,11 @@ public class DeviceStorageMonitorService extends SystemService { private static final long DEFAULT_DISK_FREE_CHANGE_REPORTING_THRESHOLD = 2 * 1024 * 1024; // 2MB private static final long DEFAULT_CHECK_INTERVAL = MONITOR_INTERVAL*60*1000; + // com.android.internal.R.string.low_internal_storage_view_text_no_boot + // hard codes 250MB in the message as the storage space required for the + // boot image. + private static final long BOOT_IMAGE_STORAGE_REQUIREMENT = 250 * 1024 * 1024; + private long mFreeMem; // on /data private long mFreeMemAfterLastCacheClear; // on /data private long mLastReportedFreeMem; @@ -290,9 +295,10 @@ public class DeviceStorageMonitorService extends SystemService { mLowMemFlag = false; } } - if (!mLowMemFlag && !mIsBootImageOnDisk) { + if (!mLowMemFlag && !mIsBootImageOnDisk && mFreeMem < BOOT_IMAGE_STORAGE_REQUIREMENT) { Slog.i(TAG, "No boot image on disk due to lack of space. Sending notification"); sendNotification(); + mLowMemFlag = true; } if (mFreeMem < mMemFullThreshold) { if (!mMemFullFlag) { @@ -383,7 +389,7 @@ public class DeviceStorageMonitorService extends SystemService { @Override public boolean isMemoryLow() { - return mLowMemFlag || !mIsBootImageOnDisk; + return mLowMemFlag; } @Override |