Add simple null checks to StorageWizard*, also listen to...
the disk destroyed event. Bug 21336042 Change-Id: I9f53501a6122a4a9046774e3c4c08b5d6d6f8552
This commit is contained in:
@@ -20,8 +20,10 @@ import android.app.Activity;
|
|||||||
import android.graphics.Color;
|
import android.graphics.Color;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.storage.DiskInfo;
|
import android.os.storage.DiskInfo;
|
||||||
|
import android.os.storage.StorageEventListener;
|
||||||
import android.os.storage.StorageManager;
|
import android.os.storage.StorageManager;
|
||||||
import android.os.storage.VolumeInfo;
|
import android.os.storage.VolumeInfo;
|
||||||
|
import android.os.storage.VolumeRecord;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.WindowManager;
|
import android.view.WindowManager;
|
||||||
@@ -63,6 +65,10 @@ public abstract class StorageWizardBase extends Activity implements NavigationBa
|
|||||||
}
|
}
|
||||||
|
|
||||||
setTheme(R.style.SuwThemeMaterial_Light);
|
setTheme(R.style.SuwThemeMaterial_Light);
|
||||||
|
|
||||||
|
if (mDisk != null) {
|
||||||
|
mStorage.registerListener(mStorageListener);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -82,6 +88,12 @@ public abstract class StorageWizardBase extends Activity implements NavigationBa
|
|||||||
getBackButton().setVisibility(View.GONE);
|
getBackButton().setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onDestroy() {
|
||||||
|
mStorage.unregisterListener(mStorageListener);
|
||||||
|
super.onDestroy();
|
||||||
|
}
|
||||||
|
|
||||||
protected NavigationBar getNavigationBar() {
|
protected NavigationBar getNavigationBar() {
|
||||||
return (NavigationBar) findViewById(R.id.suw_layout_navigation_bar);
|
return (NavigationBar) findViewById(R.id.suw_layout_navigation_bar);
|
||||||
}
|
}
|
||||||
@@ -142,4 +154,14 @@ public abstract class StorageWizardBase extends Activity implements NavigationBa
|
|||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private final StorageEventListener mStorageListener = new StorageEventListener() {
|
||||||
|
@Override
|
||||||
|
public void onDiskDestroyed(DiskInfo disk) {
|
||||||
|
// We know mDisk != null.
|
||||||
|
if (mDisk.id.equals(disk.id)) {
|
||||||
|
finish();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
@@ -32,10 +32,12 @@ public class StorageWizardFormatConfirm extends StorageWizardBase {
|
|||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
if (mDisk == null) {
|
||||||
|
finish();
|
||||||
|
return;
|
||||||
|
}
|
||||||
setContentView(R.layout.storage_wizard_generic);
|
setContentView(R.layout.storage_wizard_generic);
|
||||||
|
|
||||||
Preconditions.checkNotNull(mDisk);
|
|
||||||
|
|
||||||
mFormatPrivate = getIntent().getBooleanExtra(EXTRA_FORMAT_PRIVATE, false);
|
mFormatPrivate = getIntent().getBooleanExtra(EXTRA_FORMAT_PRIVATE, false);
|
||||||
|
|
||||||
if (mFormatPrivate) {
|
if (mFormatPrivate) {
|
||||||
|
@@ -44,10 +44,12 @@ public class StorageWizardFormatProgress extends StorageWizardBase {
|
|||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
if (mDisk == null) {
|
||||||
|
finish();
|
||||||
|
return;
|
||||||
|
}
|
||||||
setContentView(R.layout.storage_wizard_progress);
|
setContentView(R.layout.storage_wizard_progress);
|
||||||
|
|
||||||
Preconditions.checkNotNull(mDisk);
|
|
||||||
|
|
||||||
mFormatPrivate = getIntent().getBooleanExtra(
|
mFormatPrivate = getIntent().getBooleanExtra(
|
||||||
StorageWizardFormatConfirm.EXTRA_FORMAT_PRIVATE, false);
|
StorageWizardFormatConfirm.EXTRA_FORMAT_PRIVATE, false);
|
||||||
|
|
||||||
|
@@ -34,10 +34,12 @@ public class StorageWizardInit extends StorageWizardBase {
|
|||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
if (mDisk == null) {
|
||||||
|
finish();
|
||||||
|
return;
|
||||||
|
}
|
||||||
setContentView(R.layout.storage_wizard_init);
|
setContentView(R.layout.storage_wizard_init);
|
||||||
|
|
||||||
Preconditions.checkNotNull(mDisk);
|
|
||||||
|
|
||||||
setHeaderText(R.string.storage_wizard_init_title, mDisk.getDescription());
|
setHeaderText(R.string.storage_wizard_init_title, mDisk.getDescription());
|
||||||
|
|
||||||
mRadioExternal = (RadioButton) findViewById(R.id.storage_wizard_init_external_title);
|
mRadioExternal = (RadioButton) findViewById(R.id.storage_wizard_init_external_title);
|
||||||
|
@@ -35,10 +35,12 @@ public class StorageWizardMigrate extends StorageWizardBase {
|
|||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
if (mDisk == null) {
|
||||||
|
finish();
|
||||||
|
return;
|
||||||
|
}
|
||||||
setContentView(R.layout.storage_wizard_migrate);
|
setContentView(R.layout.storage_wizard_migrate);
|
||||||
|
|
||||||
Preconditions.checkNotNull(mDisk);
|
|
||||||
|
|
||||||
setHeaderText(R.string.storage_wizard_migrate_title, mDisk.getDescription());
|
setHeaderText(R.string.storage_wizard_migrate_title, mDisk.getDescription());
|
||||||
setBodyText(R.string.memory_calculating_size);
|
setBodyText(R.string.memory_calculating_size);
|
||||||
|
|
||||||
|
@@ -36,6 +36,11 @@ public class StorageWizardMigrateConfirm extends StorageWizardBase {
|
|||||||
mVolume = findFirstVolume(VolumeInfo.TYPE_PRIVATE);
|
mVolume = findFirstVolume(VolumeInfo.TYPE_PRIVATE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (mVolume == null) {
|
||||||
|
finish();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
final VolumeInfo sourceVol = getPackageManager().getPrimaryStorageCurrentVolume();
|
final VolumeInfo sourceVol = getPackageManager().getPrimaryStorageCurrentVolume();
|
||||||
final String sourceDescrip = mStorage.getBestVolumeDescription(sourceVol);
|
final String sourceDescrip = mStorage.getBestVolumeDescription(sourceVol);
|
||||||
final String targetDescrip = mStorage.getBestVolumeDescription(mVolume);
|
final String targetDescrip = mStorage.getBestVolumeDescription(mVolume);
|
||||||
|
@@ -39,10 +39,12 @@ public class StorageWizardMigrateProgress extends StorageWizardBase {
|
|||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
if (mVolume == null) {
|
||||||
|
finish();
|
||||||
|
return;
|
||||||
|
}
|
||||||
setContentView(R.layout.storage_wizard_progress);
|
setContentView(R.layout.storage_wizard_progress);
|
||||||
|
|
||||||
Preconditions.checkNotNull(mVolume);
|
|
||||||
|
|
||||||
mMoveId = getIntent().getIntExtra(EXTRA_MOVE_ID, -1);
|
mMoveId = getIntent().getIntExtra(EXTRA_MOVE_ID, -1);
|
||||||
|
|
||||||
final String descrip = mStorage.getBestVolumeDescription(mVolume);
|
final String descrip = mStorage.getBestVolumeDescription(mVolume);
|
||||||
|
@@ -36,6 +36,10 @@ public class StorageWizardMoveConfirm extends StorageWizardBase {
|
|||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
if (mVolume == null) {
|
||||||
|
finish();
|
||||||
|
return;
|
||||||
|
}
|
||||||
setContentView(R.layout.storage_wizard_generic);
|
setContentView(R.layout.storage_wizard_generic);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@@ -45,9 +49,6 @@ public class StorageWizardMoveConfirm extends StorageWizardBase {
|
|||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
Preconditions.checkNotNull(mVolume);
|
|
||||||
Preconditions.checkNotNull(mApp);
|
|
||||||
|
|
||||||
// Sanity check that target volume is candidate
|
// Sanity check that target volume is candidate
|
||||||
Preconditions.checkState(
|
Preconditions.checkState(
|
||||||
getPackageManager().getPackageCandidateVolumes(mApp).contains(mVolume));
|
getPackageManager().getPackageCandidateVolumes(mApp).contains(mVolume));
|
||||||
|
@@ -36,6 +36,10 @@ public class StorageWizardMoveProgress extends StorageWizardBase {
|
|||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
if (mVolume == null) {
|
||||||
|
finish();
|
||||||
|
return;
|
||||||
|
}
|
||||||
setContentView(R.layout.storage_wizard_progress);
|
setContentView(R.layout.storage_wizard_progress);
|
||||||
|
|
||||||
mMoveId = getIntent().getIntExtra(EXTRA_MOVE_ID, -1);
|
mMoveId = getIntent().getIntExtra(EXTRA_MOVE_ID, -1);
|
||||||
|
@@ -26,10 +26,12 @@ public class StorageWizardReady extends StorageWizardBase {
|
|||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
if (mDisk == null) {
|
||||||
|
finish();
|
||||||
|
return;
|
||||||
|
}
|
||||||
setContentView(R.layout.storage_wizard_generic);
|
setContentView(R.layout.storage_wizard_generic);
|
||||||
|
|
||||||
Preconditions.checkNotNull(mDisk);
|
|
||||||
|
|
||||||
setHeaderText(R.string.storage_wizard_ready_title, mDisk.getDescription());
|
setHeaderText(R.string.storage_wizard_ready_title, mDisk.getDescription());
|
||||||
|
|
||||||
// TODO: handle mixed partition cases instead of just guessing based on
|
// TODO: handle mixed partition cases instead of just guessing based on
|
||||||
|
Reference in New Issue
Block a user