Minor SharedPreference clean-up.
Make a member final, line up some comments, and also cache the
expected stat size, not just the mtime.
Change-Id: Ifcc37bd3ab99787280e506deb682200a16da512e
diff --git a/core/java/android/app/ContextImpl.java b/core/java/android/app/ContextImpl.java
index e66f52a..c08f1fc 100644
--- a/core/java/android/app/ContextImpl.java
+++ b/core/java/android/app/ContextImpl.java
@@ -2739,14 +2739,15 @@
private final File mBackupFile;
private final int mMode;
- private Map<String, Object> mMap; // guarded by 'this'
- private long mTimestamp; // guarded by 'this'
+ private Map<String, Object> mMap; // guarded by 'this'
private int mDiskWritesInFlight = 0; // guarded by 'this'
- private boolean mLoaded = false; // guarded by 'this'
+ private boolean mLoaded = false; // guarded by 'this'
+ private long mStatTimestamp; // guarded by 'this'
+ private long mStatSize; // guarded by 'this'
private final Object mWritingToDiskLock = new Object();
private static final Object mContent = new Object();
- private WeakHashMap<OnSharedPreferenceChangeListener, Object> mListeners;
+ private final WeakHashMap<OnSharedPreferenceChangeListener, Object> mListeners;
SharedPreferencesImpl(
File file, int mode, Map initialContents) {
@@ -2757,7 +2758,7 @@
mMap = initialContents != null ? initialContents : new HashMap<String, Object>();
FileStatus stat = new FileStatus();
if (FileUtils.getFileStatus(file.getPath(), stat)) {
- mTimestamp = stat.mtime;
+ mStatTimestamp = stat.mtime;
}
mListeners = new WeakHashMap<OnSharedPreferenceChangeListener, Object>();
}
@@ -2784,7 +2785,7 @@
return true;
}
synchronized (this) {
- return mTimestamp != stat.mtime;
+ return mStatTimestamp != stat.mtime || mStatSize != stat.size;
}
}
@@ -3165,7 +3166,8 @@
FileStatus stat = new FileStatus();
if (FileUtils.getFileStatus(mFile.getPath(), stat)) {
synchronized (this) {
- mTimestamp = stat.mtime;
+ mStatTimestamp = stat.mtime;
+ mStatSize = stat.size;
}
}
// Writing was successful, delete the backup file if there is one.