diff --git a/core/java/android/app/ContextImpl.java b/core/java/android/app/ContextImpl.java index 69833032000db..5d26162ea258c 100644 --- a/core/java/android/app/ContextImpl.java +++ b/core/java/android/app/ContextImpl.java @@ -364,7 +364,8 @@ class ContextImpl extends Context { } Map map = null; - if (prefsFile.exists() && prefsFile.canRead()) { + FileStatus stat = new FileStatus(); + if (FileUtils.getFileStatus(prefsFile.getPath(), stat) && prefsFile.canRead()) { try { FileInputStream str = new FileInputStream(prefsFile); map = XmlUtils.readMapXml(str); @@ -377,7 +378,7 @@ class ContextImpl extends Context { Log.w(TAG, "getSharedPreferences", e); } } - sp.replace(map); + sp.replace(map, stat); } return sp; } @@ -2766,12 +2767,16 @@ class ContextImpl extends Context { } } - public void replace(Map newContents) { + /* package */ void replace(Map newContents, FileStatus stat) { synchronized (this) { mLoaded = true; if (newContents != null) { mMap = newContents; } + if (stat != null) { + mStatTimestamp = stat.mtime; + mStatSize = stat.size; + } } }