Actually gracefully finish this time around.

Also fix tinting on front-door icon.

Bug: 21403958
Change-Id: I74f0372a41b92235abe10391f36d9f6a1e6a40c5
This commit is contained in:
Jeff Sharkey
2015-06-16 20:11:44 -07:00
parent e79ff145f3
commit 665094c9d2
5 changed files with 63 additions and 34 deletions

View File

@@ -16,8 +16,6 @@
package com.android.settings.deviceinfo;
import static com.android.settings.deviceinfo.StorageSettings.TAG;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
@@ -33,7 +31,6 @@ import android.provider.DocumentsContract;
import android.text.TextUtils;
import android.text.format.Formatter;
import android.text.format.Formatter.BytesResult;
import android.util.Log;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.util.Preconditions;
@@ -67,6 +64,11 @@ public class PublicVolumeSettings extends SettingsPreferenceFragment {
private Preference mFormatPublic;
private Preference mFormatPrivate;
private boolean isVolumeValid() {
return (mVolume != null) && (mVolume.getType() == VolumeInfo.TYPE_PUBLIC)
&& mVolume.isMountedReadable();
}
@Override
protected int getMetricsCategory() {
return MetricsLogger.DEVICEINFO_STORAGE;
@@ -90,14 +92,11 @@ public class PublicVolumeSettings extends SettingsPreferenceFragment {
mVolume = mStorageManager.findVolumeById(volId);
}
if (mVolume == null) {
Log.d(TAG, "Leaving details fragment due to missing volume");
finish();
if (!isVolumeValid()) {
getActivity().finish();
return;
}
Preconditions.checkState(mVolume.getType() == VolumeInfo.TYPE_PUBLIC);
mDisk = mStorageManager.findDiskById(mVolume.getDiskId());
Preconditions.checkNotNull(mDisk);
@@ -114,6 +113,11 @@ public class PublicVolumeSettings extends SettingsPreferenceFragment {
}
public void update() {
if (!isVolumeValid()) {
getActivity().finish();
return;
}
getActivity().setTitle(mStorageManager.getBestVolumeDescription(mVolume));
final Context context = getActivity();
@@ -121,12 +125,6 @@ public class PublicVolumeSettings extends SettingsPreferenceFragment {
screen.removeAll();
if (!mVolume.isMountedReadable()) {
Log.d(TAG, "Leaving details fragment due to state " + mVolume.getState());
finish();
return;
}
if (mVolume.isMountedReadable()) {
screen.addPreference(mSummary);
@@ -168,7 +166,7 @@ public class PublicVolumeSettings extends SettingsPreferenceFragment {
// Refresh to verify that we haven't been formatted away
mVolume = mStorageManager.findVolumeById(mVolumeId);
if (mVolume == null) {
if (!isVolumeValid()) {
getActivity().finish();
return;
}