Merge "resolve merge conflicts of af840b5 to master"

This commit is contained in:
TreeHugger Robot
2016-09-30 16:58:49 +00:00
committed by Android (Google) Code Review

View File

@@ -468,7 +468,7 @@ public class PrivateVolumeSettings extends SettingsPreferenceFragment {
// TODO: launch better intents for specific volume // TODO: launch better intents for specific volume
final int userId = (pref instanceof StorageItemPreference ? final int userId = (pref instanceof StorageItemPreference ?
((StorageItemPreference)pref).userHandle : -1); ((StorageItemPreference) pref).userHandle : -1);
int itemTitleId; int itemTitleId;
try { try {
itemTitleId = Integer.parseInt(pref.getKey()); itemTitleId = Integer.parseInt(pref.getKey());
@@ -513,7 +513,7 @@ public class PrivateVolumeSettings extends SettingsPreferenceFragment {
} }
case R.string.storage_detail_other: { case R.string.storage_detail_other: {
OtherInfoFragment.show(this, mStorageManager.getBestVolumeDescription(mVolume), OtherInfoFragment.show(this, mStorageManager.getBestVolumeDescription(mVolume),
mSharedVolume); mSharedVolume, userId);
return true; return true;
} }
@@ -537,15 +537,9 @@ public class PrivateVolumeSettings extends SettingsPreferenceFragment {
} }
if (intent != null) { if (intent != null) {
try { intent.putExtra(Intent.EXTRA_USER_ID, userId);
if (userId == -1) {
startActivity(intent); launchIntent(this, intent);
} else {
getActivity().startActivityAsUser(intent, new UserHandle(userId));
}
} catch (ActivityNotFoundException e) {
Log.w(TAG, "No activity found for " + intent);
}
return true; return true;
} }
return super.onPreferenceTreeClick(pref); return super.onPreferenceTreeClick(pref);
@@ -683,6 +677,20 @@ public class PrivateVolumeSettings extends SettingsPreferenceFragment {
return total; return total;
} }
private static void launchIntent(Fragment fragment, Intent intent) {
try {
final int userId = intent.getIntExtra(Intent.EXTRA_USER_ID, -1);
if (userId == -1) {
fragment.startActivity(intent);
} else {
fragment.getActivity().startActivityAsUser(intent, new UserHandle(userId));
}
} catch (ActivityNotFoundException e) {
Log.w(TAG, "No activity found for " + intent);
}
}
private final StorageEventListener mStorageListener = new StorageEventListener() { private final StorageEventListener mStorageListener = new StorageEventListener() {
@Override @Override
public void onVolumeStateChanged(VolumeInfo vol, int oldState, int newState) { public void onVolumeStateChanged(VolumeInfo vol, int oldState, int newState) {
@@ -779,14 +787,17 @@ public class PrivateVolumeSettings extends SettingsPreferenceFragment {
} }
public static class OtherInfoFragment extends InstrumentedDialogFragment { public static class OtherInfoFragment extends InstrumentedDialogFragment {
public static void show(Fragment parent, String title, VolumeInfo sharedVol) { public static void show(Fragment parent, String title, VolumeInfo sharedVol, int userId) {
if (!parent.isAdded()) return; if (!parent.isAdded()) return;
final OtherInfoFragment dialog = new OtherInfoFragment(); final OtherInfoFragment dialog = new OtherInfoFragment();
dialog.setTargetFragment(parent, 0); dialog.setTargetFragment(parent, 0);
final Bundle args = new Bundle(); final Bundle args = new Bundle();
args.putString(Intent.EXTRA_TITLE, title); args.putString(Intent.EXTRA_TITLE, title);
args.putParcelable(Intent.EXTRA_INTENT, sharedVol.buildBrowseIntent());
final Intent intent = sharedVol.buildBrowseIntent();
intent.putExtra(Intent.EXTRA_USER_ID, userId);
args.putParcelable(Intent.EXTRA_INTENT, intent);
dialog.setArguments(args); dialog.setArguments(args);
dialog.show(parent.getFragmentManager(), TAG_OTHER_INFO); dialog.show(parent.getFragmentManager(), TAG_OTHER_INFO);
} }
@@ -811,7 +822,7 @@ public class PrivateVolumeSettings extends SettingsPreferenceFragment {
new DialogInterface.OnClickListener() { new DialogInterface.OnClickListener() {
@Override @Override
public void onClick(DialogInterface dialog, int which) { public void onClick(DialogInterface dialog, int which) {
startActivity(intent); launchIntent(OtherInfoFragment.this, intent);
} }
}); });
builder.setNegativeButton(android.R.string.cancel, null); builder.setNegativeButton(android.R.string.cancel, null);