diff options
Diffstat (limited to 'core')
-rw-r--r-- | core/java/com/android/internal/backup/LocalTransport.java | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/core/java/com/android/internal/backup/LocalTransport.java b/core/java/com/android/internal/backup/LocalTransport.java index 2fe2494..a604d84 100644 --- a/core/java/com/android/internal/backup/LocalTransport.java +++ b/core/java/com/android/internal/backup/LocalTransport.java @@ -233,7 +233,9 @@ public class LocalTransport extends IBackupTransport.Stub { if (mRestorePackages == null) throw new IllegalStateException("startRestore not called"); while (++mRestorePackage < mRestorePackages.length) { String name = mRestorePackages[mRestorePackage].packageName; - if (new File(mDataDir, name).isDirectory()) { + // skip packages where we have a data dir but no actual contents + String[] contents = (new File(mDataDir, name)).list(); + if (contents != null && contents.length > 0) { if (DEBUG) Log.v(TAG, " nextRestorePackage() = " + name); return name; } |