diff options
author | Jeff Sharkey <jsharkey@android.com> | 2015-07-07 22:14:15 -0700 |
---|---|---|
committer | Jeff Sharkey <jsharkey@android.com> | 2015-07-07 22:14:18 -0700 |
commit | 697ff544bffba2854a8400fee1314f93caa667e5 (patch) | |
tree | f906945bd278ca97879f69df3b3b1405809eb512 /src/com/android/settings/deviceinfo | |
parent | 7ac21204e16c797cc4f818ccc51509d425ffaf80 (diff) | |
download | packages_apps_Settings-697ff544bffba2854a8400fee1314f93caa667e5.zip packages_apps_Settings-697ff544bffba2854a8400fee1314f93caa667e5.tar.gz packages_apps_Settings-697ff544bffba2854a8400fee1314f93caa667e5.tar.bz2 |
Move storage when formatting primary disk.
On devices where the primary storage is configured as a physical
device, and when we adopt that device, automatically move the
primary storage to be hosted on the newly created emulated volume.
Bug: 20275423
Change-Id: I759e65a01b323ef3c9ffb86d0b7c8e7b4768a45c
Diffstat (limited to 'src/com/android/settings/deviceinfo')
-rw-r--r-- | src/com/android/settings/deviceinfo/StorageWizardFormatProgress.java | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/src/com/android/settings/deviceinfo/StorageWizardFormatProgress.java b/src/com/android/settings/deviceinfo/StorageWizardFormatProgress.java index 8a03f83..a18bca3 100644 --- a/src/com/android/settings/deviceinfo/StorageWizardFormatProgress.java +++ b/src/com/android/settings/deviceinfo/StorageWizardFormatProgress.java @@ -24,8 +24,10 @@ import android.app.DialogFragment; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; +import android.content.pm.IPackageMoveObserver; import android.os.AsyncTask; import android.os.Bundle; +import android.os.RemoteException; import android.os.storage.DiskInfo; import android.os.storage.StorageManager; import android.os.storage.VolumeInfo; @@ -36,6 +38,8 @@ import android.widget.Toast; import com.android.settings.R; +import java.util.Objects; + public class StorageWizardFormatProgress extends StorageWizardBase { private static final String TAG_SLOW_WARNING = "slow_warning"; @@ -97,7 +101,18 @@ public class StorageWizardFormatProgress extends StorageWizardBase { publishProgress(60); final VolumeInfo privateVol = activity.findFirstVolume(VolumeInfo.TYPE_PRIVATE); - mPrivateBench = storage.benchmark(privateVol.id); + mPrivateBench = storage.benchmark(privateVol.getId()); + + // If we just adopted the device that had been providing + // physical storage, then automatically move storage to the + // new emulated volume. + if (activity.mDisk.isDefaultPrimary() + && Objects.equals(storage.getPrimaryStorageUuid(), + StorageManager.UUID_PRIMARY_PHYSICAL)) { + Log.d(TAG, "Just formatted primary physical; silently moving " + + "storage to new emulated volume"); + storage.setPrimaryStorageUuid(privateVol.getFsUuid(), new SilentObserver()); + } } else { storage.partitionPublic(activity.mDisk.getId()); @@ -213,4 +228,16 @@ public class StorageWizardFormatProgress extends StorageWizardBase { } finishAffinity(); } + + private static class SilentObserver extends IPackageMoveObserver.Stub { + @Override + public void onCreated(int moveId, Bundle extras) { + // Ignored + } + + @Override + public void onStatusChanged(int moveId, int status, long estMillis) { + // Ignored + } + } } |