summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/deviceinfo
diff options
context:
space:
mode:
authorJeff Sharkey <jsharkey@android.com>2015-07-07 22:14:15 -0700
committerJeff Sharkey <jsharkey@android.com>2015-07-07 22:14:18 -0700
commit697ff544bffba2854a8400fee1314f93caa667e5 (patch)
treef906945bd278ca97879f69df3b3b1405809eb512 /src/com/android/settings/deviceinfo
parent7ac21204e16c797cc4f818ccc51509d425ffaf80 (diff)
downloadpackages_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.java29
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
+ }
+ }
}