summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/deviceinfo/StorageWizardMigrateProgress.java
diff options
context:
space:
mode:
authorJeff Sharkey <jsharkey@android.com>2015-04-29 11:24:57 -0700
committerJeff Sharkey <jsharkey@android.com>2015-04-29 17:24:12 -0700
commite77f0687dd424ccfdc2b1061221c6c8ba4d6ac8d (patch)
treeb26b32cfc5b8e5ea2a59549f965be9899e95d85d /src/com/android/settings/deviceinfo/StorageWizardMigrateProgress.java
parenta03f330af31714e44f67ca09cad66f91a8acbdd2 (diff)
downloadpackages_apps_Settings-e77f0687dd424ccfdc2b1061221c6c8ba4d6ac8d.zip
packages_apps_Settings-e77f0687dd424ccfdc2b1061221c6c8ba4d6ac8d.tar.gz
packages_apps_Settings-e77f0687dd424ccfdc2b1061221c6c8ba4d6ac8d.tar.bz2
Returning to wizard, enable migration.
Bring primary storage migration back into the adoption flow, and provide a path for long-lived notifications to re-launch into the Settings app. Also provide option to initiate migration if skipped during wizard. For now, estmiate migration size and time based on a Class 10 card. Follow other callback refactoring. Bug: 19993667 Change-Id: Ia0c28eb114bc6c8066c17b3142ed74f962140c91
Diffstat (limited to 'src/com/android/settings/deviceinfo/StorageWizardMigrateProgress.java')
-rw-r--r--src/com/android/settings/deviceinfo/StorageWizardMigrateProgress.java54
1 files changed, 31 insertions, 23 deletions
diff --git a/src/com/android/settings/deviceinfo/StorageWizardMigrateProgress.java b/src/com/android/settings/deviceinfo/StorageWizardMigrateProgress.java
index b53b250..70d93f8 100644
--- a/src/com/android/settings/deviceinfo/StorageWizardMigrateProgress.java
+++ b/src/com/android/settings/deviceinfo/StorageWizardMigrateProgress.java
@@ -16,13 +16,15 @@
package com.android.settings.deviceinfo;
+import static android.content.pm.PackageManager.EXTRA_MOVE_ID;
import static com.android.settings.deviceinfo.StorageSettings.TAG;
import android.content.Context;
import android.content.Intent;
-import android.os.AsyncTask;
+import android.content.pm.PackageManager;
+import android.content.pm.PackageManager.MoveCallback;
import android.os.Bundle;
-import android.os.SystemClock;
+import android.os.Handler;
import android.os.storage.DiskInfo;
import android.util.Log;
import android.view.View;
@@ -32,45 +34,51 @@ import com.android.internal.util.Preconditions;
import com.android.settings.R;
public class StorageWizardMigrateProgress extends StorageWizardBase {
+ private int mMoveId;
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.storage_wizard_progress);
- Preconditions.checkNotNull(mDisk);
+ Preconditions.checkNotNull(mVolume);
- setHeaderText(R.string.storage_wizard_migrate_progress_title, mDisk.getDescription());
- setBodyText(R.string.storage_wizard_migrate_details, mDisk.getDescription());
+ mMoveId = getIntent().getIntExtra(EXTRA_MOVE_ID, -1);
- setCurrentProgress(20);
+ final String descrip = mStorage.getBestVolumeDescription(mVolume);
+ setHeaderText(R.string.storage_wizard_migrate_progress_title, descrip);
+ setBodyText(R.string.storage_wizard_migrate_details, descrip);
getNextButton().setVisibility(View.GONE);
- new MigrateTask().execute();
+ // Register for updates and push through current status
+ getPackageManager().registerMoveCallback(mCallback, new Handler());
+ mCallback.onStatusChanged(mMoveId, getPackageManager().getMoveStatus(mMoveId), -1);
}
- public class MigrateTask extends AsyncTask<Void, Void, Exception> {
+ private final MoveCallback mCallback = new MoveCallback() {
@Override
- protected Exception doInBackground(Void... params) {
- // TODO: wire up migration
- SystemClock.sleep(2000);
- return null;
- }
+ public void onStatusChanged(int moveId, int status, long estMillis) {
+ if (mMoveId != moveId) return;
- @Override
- protected void onPostExecute(Exception e) {
final Context context = StorageWizardMigrateProgress.this;
- if (e == null) {
- final Intent intent = new Intent(context, StorageWizardReady.class);
- intent.putExtra(DiskInfo.EXTRA_DISK_ID, mDisk.getId());
- startActivity(intent);
+ if (PackageManager.isMoveStatusFinished(status)) {
+ Log.d(TAG, "Finished with status " + status);
+ if (status == PackageManager.MOVE_SUCCEEDED) {
+ if (mDisk != null) {
+ final Intent intent = new Intent(context, StorageWizardReady.class);
+ intent.putExtra(DiskInfo.EXTRA_DISK_ID, mDisk.getId());
+ startActivity(intent);
+ }
+ } else {
+ Toast.makeText(context, getString(R.string.insufficient_storage),
+ Toast.LENGTH_LONG).show();
+ }
finishAffinity();
} else {
- Log.e(TAG, "Failed to migrate", e);
- Toast.makeText(context, e.getMessage(), Toast.LENGTH_LONG).show();
- finishAffinity();
+ setCurrentProgress(status);
}
}
- }
+ };
}