Loading src/com/android/settings/deviceinfo/StorageWizardBase.java +23 −5 Original line number Diff line number Diff line Loading @@ -16,15 +16,19 @@ package com.android.settings.deviceinfo; import static com.android.settings.deviceinfo.StorageSettings.TAG; import android.annotation.LayoutRes; import android.app.Activity; import android.graphics.Color; import android.os.Bundle; import android.os.SystemClock; import android.os.storage.DiskInfo; import android.os.storage.StorageEventListener; import android.os.storage.StorageManager; import android.os.storage.VolumeInfo; import android.text.TextUtils; import android.util.Log; import android.view.View; import android.view.ViewGroup; import android.view.Window; Loading Loading @@ -202,14 +206,28 @@ public abstract class StorageWizardBase extends Activity { } protected VolumeInfo findFirstVolume(int type) { return findFirstVolume(type, 1); } protected VolumeInfo findFirstVolume(int type, int attempts) { while (true) { final List<VolumeInfo> vols = mStorage.getVolumes(); for (VolumeInfo vol : vols) { if (Objects.equals(mDisk.getId(), vol.getDiskId()) && (vol.getType() == type)) { if (Objects.equals(mDisk.getId(), vol.getDiskId()) && (vol.getType() == type) && (vol.getState() == VolumeInfo.STATE_MOUNTED)) { return vol; } } if (--attempts > 0) { Log.w(TAG, "Missing mounted volume of type " + type + " hosted by disk " + mDisk.getId() + "; trying again"); SystemClock.sleep(250); } else { return null; } } } private final StorageEventListener mStorageListener = new StorageEventListener() { @Override Loading src/com/android/settings/deviceinfo/StorageWizardFormatProgress.java +23 −6 Original line number Diff line number Diff line Loading @@ -16,15 +16,20 @@ package com.android.settings.deviceinfo; import static android.os.storage.VolumeInfo.TYPE_PRIVATE; import static com.android.settings.deviceinfo.StorageSettings.TAG; import android.app.AlertDialog; import android.app.Dialog; 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.IVoldTaskListener; import android.os.PersistableBundle; import android.os.storage.DiskInfo; import android.os.storage.StorageManager; import android.os.storage.VolumeInfo; Loading @@ -38,8 +43,8 @@ import com.android.settings.R; import com.android.settings.core.instrumentation.InstrumentedDialogFragment; import java.util.Objects; import static com.android.settings.deviceinfo.StorageSettings.TAG; import java.util.concurrent.CompletableFuture; import java.util.concurrent.TimeUnit; public class StorageWizardFormatProgress extends StorageWizardBase { private static final String TAG_SLOW_WARNING = "slow_warning"; Loading Loading @@ -99,9 +104,21 @@ public class StorageWizardFormatProgress extends StorageWizardBase { storage.partitionPrivate(activity.mDisk.getId()); publishProgress(40); final VolumeInfo privateVol = activity.findFirstVolume(VolumeInfo.TYPE_PRIVATE); mPrivateBench = storage.benchmark(privateVol.getId()); mPrivateBench /= 1000000; final VolumeInfo privateVol = activity.findFirstVolume(TYPE_PRIVATE, 5); final CompletableFuture<PersistableBundle> result = new CompletableFuture<>(); storage.benchmark(privateVol.getId(), new IVoldTaskListener.Stub() { @Override public void onStatus(int status, PersistableBundle extras) { // Map benchmark 0-100% progress onto 40-80% publishProgress(40 + ((status * 40) / 100)); } @Override public void onFinished(int status, PersistableBundle extras) { result.complete(extras); } }); mPrivateBench = result.get(60, TimeUnit.SECONDS).getLong("run", Long.MAX_VALUE); // If we just adopted the device that had been providing // physical storage, then automatically move storage to the Loading Loading
src/com/android/settings/deviceinfo/StorageWizardBase.java +23 −5 Original line number Diff line number Diff line Loading @@ -16,15 +16,19 @@ package com.android.settings.deviceinfo; import static com.android.settings.deviceinfo.StorageSettings.TAG; import android.annotation.LayoutRes; import android.app.Activity; import android.graphics.Color; import android.os.Bundle; import android.os.SystemClock; import android.os.storage.DiskInfo; import android.os.storage.StorageEventListener; import android.os.storage.StorageManager; import android.os.storage.VolumeInfo; import android.text.TextUtils; import android.util.Log; import android.view.View; import android.view.ViewGroup; import android.view.Window; Loading Loading @@ -202,14 +206,28 @@ public abstract class StorageWizardBase extends Activity { } protected VolumeInfo findFirstVolume(int type) { return findFirstVolume(type, 1); } protected VolumeInfo findFirstVolume(int type, int attempts) { while (true) { final List<VolumeInfo> vols = mStorage.getVolumes(); for (VolumeInfo vol : vols) { if (Objects.equals(mDisk.getId(), vol.getDiskId()) && (vol.getType() == type)) { if (Objects.equals(mDisk.getId(), vol.getDiskId()) && (vol.getType() == type) && (vol.getState() == VolumeInfo.STATE_MOUNTED)) { return vol; } } if (--attempts > 0) { Log.w(TAG, "Missing mounted volume of type " + type + " hosted by disk " + mDisk.getId() + "; trying again"); SystemClock.sleep(250); } else { return null; } } } private final StorageEventListener mStorageListener = new StorageEventListener() { @Override Loading
src/com/android/settings/deviceinfo/StorageWizardFormatProgress.java +23 −6 Original line number Diff line number Diff line Loading @@ -16,15 +16,20 @@ package com.android.settings.deviceinfo; import static android.os.storage.VolumeInfo.TYPE_PRIVATE; import static com.android.settings.deviceinfo.StorageSettings.TAG; import android.app.AlertDialog; import android.app.Dialog; 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.IVoldTaskListener; import android.os.PersistableBundle; import android.os.storage.DiskInfo; import android.os.storage.StorageManager; import android.os.storage.VolumeInfo; Loading @@ -38,8 +43,8 @@ import com.android.settings.R; import com.android.settings.core.instrumentation.InstrumentedDialogFragment; import java.util.Objects; import static com.android.settings.deviceinfo.StorageSettings.TAG; import java.util.concurrent.CompletableFuture; import java.util.concurrent.TimeUnit; public class StorageWizardFormatProgress extends StorageWizardBase { private static final String TAG_SLOW_WARNING = "slow_warning"; Loading Loading @@ -99,9 +104,21 @@ public class StorageWizardFormatProgress extends StorageWizardBase { storage.partitionPrivate(activity.mDisk.getId()); publishProgress(40); final VolumeInfo privateVol = activity.findFirstVolume(VolumeInfo.TYPE_PRIVATE); mPrivateBench = storage.benchmark(privateVol.getId()); mPrivateBench /= 1000000; final VolumeInfo privateVol = activity.findFirstVolume(TYPE_PRIVATE, 5); final CompletableFuture<PersistableBundle> result = new CompletableFuture<>(); storage.benchmark(privateVol.getId(), new IVoldTaskListener.Stub() { @Override public void onStatus(int status, PersistableBundle extras) { // Map benchmark 0-100% progress onto 40-80% publishProgress(40 + ((status * 40) / 100)); } @Override public void onFinished(int status, PersistableBundle extras) { result.complete(extras); } }); mPrivateBench = result.get(60, TimeUnit.SECONDS).getLong("run", Long.MAX_VALUE); // If we just adopted the device that had been providing // physical storage, then automatically move storage to the Loading