Turn the eject menu into a button.
BUG=21897892
Change-Id: Icd0db7907b990447c99c4ae65816e85777df0f8e
diff --git a/src/com/android/settings/SettingsPreferenceFragment.java b/src/com/android/settings/SettingsPreferenceFragment.java
index baf04d4..74c60a8 100644
--- a/src/com/android/settings/SettingsPreferenceFragment.java
+++ b/src/com/android/settings/SettingsPreferenceFragment.java
@@ -83,6 +83,7 @@
private ViewGroup mPinnedHeaderFrameLayout;
private FloatingActionButton mFloatingActionButton;
+ private ViewGroup mButtonBar;
@Override
public void onCreate(Bundle icicle) {
@@ -105,6 +106,7 @@
final View root = super.onCreateView(inflater, container, savedInstanceState);
mPinnedHeaderFrameLayout = (ViewGroup) root.findViewById(R.id.pinned_header);
mFloatingActionButton = (FloatingActionButton) root.findViewById(R.id.fab);
+ mButtonBar = (ViewGroup) root.findViewById(R.id.button_bar);
return root;
}
@@ -112,6 +114,10 @@
return mFloatingActionButton;
}
+ public ViewGroup getButtonBar() {
+ return mButtonBar;
+ }
+
public View setPinnedHeaderView(int layoutResId) {
final LayoutInflater inflater = getActivity().getLayoutInflater();
final View pinnedHeader =
diff --git a/src/com/android/settings/deviceinfo/PublicVolumeSettings.java b/src/com/android/settings/deviceinfo/PublicVolumeSettings.java
index 4c77d21..cb0fe0e 100644
--- a/src/com/android/settings/deviceinfo/PublicVolumeSettings.java
+++ b/src/com/android/settings/deviceinfo/PublicVolumeSettings.java
@@ -18,6 +18,7 @@
import android.content.Context;
import android.content.Intent;
+import android.content.res.Resources;
import android.net.Uri;
import android.os.Bundle;
import android.os.UserManager;
@@ -32,6 +33,9 @@
import android.text.TextUtils;
import android.text.format.Formatter;
import android.text.format.Formatter.BytesResult;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.util.Preconditions;
@@ -59,9 +63,9 @@
private StorageSummaryPreference mSummary;
private Preference mMount;
- private Preference mUnmount;
private Preference mFormatPublic;
private Preference mFormatPrivate;
+ private Button mUnmount;
private boolean mIsPermittedToAdopt;
@@ -111,13 +115,29 @@
mSummary = new StorageSummaryPreference(context);
mMount = buildAction(R.string.storage_menu_mount);
- mUnmount = buildAction(R.string.storage_menu_unmount);
+ mUnmount = new Button(getActivity());
+ mUnmount.setText(R.string.storage_menu_unmount);
+ mUnmount.setOnClickListener(mUnmountListener);
mFormatPublic = buildAction(R.string.storage_menu_format);
if (mIsPermittedToAdopt) {
mFormatPrivate = buildAction(R.string.storage_menu_format_private);
}
}
+ @Override
+ public void onActivityCreated(Bundle savedInstanceState) {
+ super.onActivityCreated(savedInstanceState);
+ final Resources resources = getResources();
+ final int padding = resources.getDimensionPixelSize(
+ R.dimen.unmount_button_padding);
+ final ViewGroup buttonBar = getButtonBar();
+ buttonBar.removeAllViews();
+ buttonBar.setPadding(padding, padding, padding, padding);
+ buttonBar.addView(mUnmount, new ViewGroup.LayoutParams(
+ ViewGroup.LayoutParams.MATCH_PARENT,
+ ViewGroup.LayoutParams.WRAP_CONTENT));
+ }
+
public void update() {
if (!isVolumeValid()) {
getActivity().finish();
@@ -151,7 +171,7 @@
addPreference(mMount);
}
if (mVolume.isMountedReadable()) {
- addPreference(mUnmount);
+ getButtonBar().setVisibility(View.VISIBLE);
}
addPreference(mFormatPublic);
if (mDisk.isAdoptable() && mIsPermittedToAdopt) {
@@ -196,8 +216,6 @@
final Context context = getActivity();
if (pref == mMount) {
new MountTask(context, mVolume).execute();
- } else if (pref == mUnmount) {
- new UnmountTask(context, mVolume).execute();
} else if (pref == mFormatPublic) {
final Intent intent = new Intent(context, StorageWizardFormatConfirm.class);
intent.putExtra(DiskInfo.EXTRA_DISK_ID, mDisk.getId());
@@ -213,6 +231,13 @@
return super.onPreferenceTreeClick(preferenceScreen, pref);
}
+ private final View.OnClickListener mUnmountListener = new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ new UnmountTask(getActivity(), mVolume).execute();
+ }
+ };
+
private final StorageEventListener mStorageListener = new StorageEventListener() {
@Override
public void onVolumeStateChanged(VolumeInfo vol, int oldState, int newState) {