Re-add the option to migrate data back.
Currently, users can use an SD card or USB drive and adopt it as internal storage using existing flows. They can manage this drive perfectly fine using the old storage screen, which is still around. One functionality that was lost was the ability to migrate data from the adopted drive back to the private internal storage. This appeared in a dropdown in the old storage settings. By duplicating the code to create just that specific menu item and its click behavior, we can restore this functionality to the new storage view. Change-Id: Id0e01c560e7249acccfe86c5da44466dd58fe5d4 Merged-In: I4b8c06912d2c0b2c5be5bce8b217d45accf34d4b Fixes: 35926028 Test: Settings Robotest
This commit is contained in:
@@ -18,6 +18,7 @@ package com.android.settings.deviceinfo;
|
||||
|
||||
import android.app.LoaderManager;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.Loader;
|
||||
import android.os.Bundle;
|
||||
import android.os.UserHandle;
|
||||
@@ -25,11 +26,17 @@ import android.os.UserManager;
|
||||
import android.os.storage.StorageManager;
|
||||
import android.os.storage.VolumeInfo;
|
||||
import android.provider.SearchIndexableResource;
|
||||
import android.support.annotation.VisibleForTesting;
|
||||
import android.util.Log;
|
||||
import android.util.SparseArray;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
|
||||
import com.android.internal.logging.nano.MetricsProto;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.Utils;
|
||||
import com.android.settings.applications.PackageManagerWrapper;
|
||||
import com.android.settings.applications.PackageManagerWrapperImpl;
|
||||
import com.android.settings.applications.UserManagerWrapper;
|
||||
import com.android.settings.applications.UserManagerWrapperImpl;
|
||||
@@ -48,16 +55,19 @@ import com.android.settingslib.deviceinfo.StorageManagerVolumeProvider;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
public class StorageDashboardFragment extends DashboardFragment
|
||||
implements LoaderManager.LoaderCallbacks<SparseArray<StorageAsyncLoader.AppsStorageResult>> {
|
||||
private static final String TAG = "StorageDashboardFrag";
|
||||
private static final int STORAGE_JOB_ID = 0;
|
||||
private static final int OPTIONS_MENU_MIGRATE_DATA = 100;
|
||||
|
||||
private VolumeInfo mVolume;
|
||||
|
||||
private StorageSummaryDonutPreferenceController mSummaryController;
|
||||
private StorageItemPreferenceController mPreferenceController;
|
||||
private PrivateVolumeOptionMenuController mOptionMenuController;
|
||||
private List<PreferenceController> mSecondaryUsers;
|
||||
|
||||
@Override
|
||||
@@ -101,6 +111,9 @@ public class StorageDashboardFragment extends DashboardFragment
|
||||
return;
|
||||
}
|
||||
|
||||
mOptionMenuController = new PrivateVolumeOptionMenuController(
|
||||
context, mVolume, new PackageManagerWrapperImpl(context.getPackageManager()));
|
||||
|
||||
final long sharedDataSize = mVolume.getPath().getTotalSpace();
|
||||
long totalSize = sm.getPrimaryStorageSize();
|
||||
long systemSize = totalSize - sharedDataSize;
|
||||
@@ -161,10 +174,16 @@ public class StorageDashboardFragment extends DashboardFragment
|
||||
new AutomaticStorageManagementSwitchPreferenceController(
|
||||
context, mMetricsFeatureProvider, getFragmentManager());
|
||||
getLifecycle().addObserver(asmController);
|
||||
getLifecycle().addObserver(mOptionMenuController);
|
||||
controllers.add(asmController);
|
||||
return controllers;
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
protected void setVolume(VolumeInfo info) {
|
||||
mVolume = info;
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates the secondary user controller sizes.
|
||||
*/
|
||||
|
Reference in New Issue
Block a user