Don't migrate accounts.db if already migrated.

Some developers accidentally create a blank accounts.db and this
was causing accounts to vanish. This safeguards the case where both
old and new files exist.

Bug: 6168813
Change-Id: I79cf211acc5422ff1c17fe0c9af80c49227b60ac
This commit is contained in:
Amith Yamasani
2012-04-11 15:32:07 -07:00
parent d3ce6f50c1
commit a23bb38628

View File

@@ -1844,9 +1844,12 @@ public class AccountManagerService
File systemDir = Environment.getSystemSecureDirectory();
File databaseFile = new File(systemDir, "users/" + userId + "/" + DATABASE_NAME);
if (userId == 0) {
// Migrate old file, if it exists, to the new location
// Migrate old file, if it exists, to the new location.
// Make sure the new file doesn't already exist. A dummy file could have been
// accidentally created in the old location, causing the new one to become corrupted
// as well.
File oldFile = new File(systemDir, DATABASE_NAME);
if (oldFile.exists()) {
if (oldFile.exists() && !databaseFile.exists()) {
// Check for use directory; create if it doesn't exist, else renameTo will fail
File userDir = new File(systemDir, "users/" + userId);
if (!userDir.exists()) {