am 64f7e438: Move DocumentsUI settings into overflow menu.
* commit '64f7e43838255464164b5dd56595590ec14eefab': Move DocumentsUI settings into overflow menu.
This commit is contained in:
@@ -42,12 +42,6 @@
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<activity
|
||||
android:name=".SettingsActivity"
|
||||
android:label="@string/menu_settings"
|
||||
android:theme="@android:style/Theme.DeviceDefault.Light.DialogWhenLarge"
|
||||
android:exported="false" />
|
||||
|
||||
<provider
|
||||
android:name=".RecentsProvider"
|
||||
android:authorities="com.android.documentsui.recents"
|
||||
|
||||
@@ -55,8 +55,9 @@
|
||||
android:icon="@drawable/ic_menu_view_list"
|
||||
android:showAsAction="never" />
|
||||
<item
|
||||
android:id="@+id/menu_settings"
|
||||
android:title="@string/menu_settings"
|
||||
android:icon="@drawable/ic_menu_settings"
|
||||
android:id="@+id/menu_advanced"
|
||||
android:showAsAction="never" />
|
||||
<item
|
||||
android:id="@+id/menu_file_size"
|
||||
android:showAsAction="never" />
|
||||
</menu>
|
||||
|
||||
@@ -47,6 +47,20 @@
|
||||
<!-- Menu item title that selects the current directory [CHAR LIMIT=48] -->
|
||||
<string name="menu_select">Select \"<xliff:g id="directory" example="My Directory">^1</xliff:g>\"</string>
|
||||
|
||||
<!-- Menu item that reveals internal storage built into the device [CHAR LIMIT=24] -->
|
||||
<string name="menu_advanced_show" product="nosdcard">Show internal storage</string>
|
||||
<!-- Menu item that reveals SD cards built into the device [CHAR LIMIT=24] -->
|
||||
<string name="menu_advanced_show" product="default">Show SD card</string>
|
||||
<!-- Menu item that hides internal storage built into the device [CHAR LIMIT=24] -->
|
||||
<string name="menu_advanced_hide" product="nosdcard">Hide internal storage</string>
|
||||
<!-- Menu item that hides SD cards built into the device [CHAR LIMIT=24] -->
|
||||
<string name="menu_advanced_hide" product="default">Hide SD card</string>
|
||||
|
||||
<!-- Menu item that reveals the sizes of displayed files [CHAR LIMIT=24] -->
|
||||
<string name="menu_file_size_show">Show file size</string>
|
||||
<!-- Menu item that hides the sizes of displayed files [CHAR LIMIT=24] -->
|
||||
<string name="menu_file_size_hide">Hide file size</string>
|
||||
|
||||
<!-- Action mode title summarizing the number of documents selected [CHAR LIMIT=32] -->
|
||||
<string name="mode_selected_count"><xliff:g id="count" example="3">%1$d</xliff:g> selected</string>
|
||||
|
||||
@@ -83,12 +97,6 @@
|
||||
<!-- Header title for list of additional apps that can provide documents [CHAR LIMIT=24] -->
|
||||
<string name="root_type_apps">More apps</string>
|
||||
|
||||
<!-- Title for setting that will show all advanced storage devices [CHAR LIMIT=32] -->
|
||||
<string name="pref_advanced_devices">Display advanced devices</string>
|
||||
<!-- Title for setting that will show file sizes for all documents [CHAR LIMIT=32] -->
|
||||
<string name="pref_file_size">Display file size</string>
|
||||
<string name="pref_device_size">Display device size</string>
|
||||
|
||||
<!-- Text shown when a directory of documents is empty [CHAR LIMIT=24] -->
|
||||
<string name="empty">No items</string>
|
||||
|
||||
|
||||
@@ -351,6 +351,10 @@ public class DirectoryFragment extends Fragment {
|
||||
updateDisplayState();
|
||||
}
|
||||
|
||||
public void onDisplayStateChanged() {
|
||||
updateDisplayState();
|
||||
}
|
||||
|
||||
public void onUserSortOrderChanged() {
|
||||
// Sort order change always triggers reload; we'll trigger state change
|
||||
// on the flip side.
|
||||
|
||||
@@ -254,7 +254,13 @@ public class DocumentsActivity extends Activity {
|
||||
mState.localOnly = intent.getBooleanExtra(Intent.EXTRA_LOCAL_ONLY, false);
|
||||
mState.forceAdvanced = intent.getBooleanExtra(DocumentsContract.EXTRA_SHOW_ADVANCED, false);
|
||||
mState.showAdvanced = mState.forceAdvanced
|
||||
| SettingsActivity.getDisplayAdvancedDevices(this);
|
||||
| LocalPreferences.getDisplayAdvancedDevices(this);
|
||||
|
||||
if (mState.action == ACTION_MANAGE) {
|
||||
mState.showSize = true;
|
||||
} else {
|
||||
mState.showSize = LocalPreferences.getDisplayFileSize(this);
|
||||
}
|
||||
}
|
||||
|
||||
private class RestoreRootTask extends AsyncTask<Void, Void, RootInfo> {
|
||||
@@ -352,18 +358,6 @@ public class DocumentsActivity extends Activity {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
|
||||
if (mState.action == ACTION_MANAGE) {
|
||||
mState.showSize = true;
|
||||
} else {
|
||||
mState.showSize = SettingsActivity.getDisplayFileSize(this);
|
||||
invalidateOptionsMenu();
|
||||
}
|
||||
}
|
||||
|
||||
private DrawerListener mDrawerListener = new DrawerListener() {
|
||||
@Override
|
||||
public void onDrawerSlide(View drawerView, float slideOffset) {
|
||||
@@ -463,10 +457,17 @@ public class DocumentsActivity extends Activity {
|
||||
super.onCreateOptionsMenu(menu);
|
||||
getMenuInflater().inflate(R.menu.activity, menu);
|
||||
|
||||
// Actions are always visible when showing as dialog
|
||||
// Most actions are visible when showing as dialog
|
||||
if (mShowAsDialog) {
|
||||
for (int i = 0; i < menu.size(); i++) {
|
||||
menu.getItem(i).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
|
||||
final MenuItem item = menu.getItem(i);
|
||||
switch (item.getItemId()) {
|
||||
case R.id.menu_advanced:
|
||||
case R.id.menu_file_size:
|
||||
break;
|
||||
default:
|
||||
item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -543,7 +544,8 @@ public class DocumentsActivity extends Activity {
|
||||
final MenuItem sortSize = menu.findItem(R.id.menu_sort_size);
|
||||
final MenuItem grid = menu.findItem(R.id.menu_grid);
|
||||
final MenuItem list = menu.findItem(R.id.menu_list);
|
||||
final MenuItem settings = menu.findItem(R.id.menu_settings);
|
||||
final MenuItem advanced = menu.findItem(R.id.menu_advanced);
|
||||
final MenuItem fileSize = menu.findItem(R.id.menu_file_size);
|
||||
|
||||
sort.setVisible(cwd != null);
|
||||
grid.setVisible(mState.derivedMode != MODE_GRID);
|
||||
@@ -594,7 +596,13 @@ public class DocumentsActivity extends Activity {
|
||||
// TODO: close any search in-progress when hiding
|
||||
search.setVisible(searchVisible);
|
||||
|
||||
settings.setVisible(mState.action != ACTION_MANAGE);
|
||||
advanced.setTitle(LocalPreferences.getDisplayAdvancedDevices(this)
|
||||
? R.string.menu_advanced_hide : R.string.menu_advanced_show);
|
||||
fileSize.setTitle(LocalPreferences.getDisplayFileSize(this)
|
||||
? R.string.menu_file_size_hide : R.string.menu_file_size_show);
|
||||
|
||||
advanced.setVisible(mState.action != ACTION_MANAGE);
|
||||
fileSize.setVisible(mState.action != ACTION_MANAGE);
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -629,14 +637,31 @@ public class DocumentsActivity extends Activity {
|
||||
} else if (id == R.id.menu_list) {
|
||||
setUserMode(State.MODE_LIST);
|
||||
return true;
|
||||
} else if (id == R.id.menu_settings) {
|
||||
startActivity(new Intent(this, SettingsActivity.class));
|
||||
} else if (id == R.id.menu_advanced) {
|
||||
setDisplayAdvancedDevices(!LocalPreferences.getDisplayAdvancedDevices(this));
|
||||
return true;
|
||||
} else if (id == R.id.menu_file_size) {
|
||||
setDisplayFileSize(!LocalPreferences.getDisplayFileSize(this));
|
||||
return true;
|
||||
} else {
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
}
|
||||
|
||||
private void setDisplayAdvancedDevices(boolean display) {
|
||||
LocalPreferences.setDisplayAdvancedDevices(this, display);
|
||||
mState.showAdvanced = mState.forceAdvanced | display;
|
||||
RootsFragment.get(getFragmentManager()).onDisplayStateChanged();
|
||||
invalidateOptionsMenu();
|
||||
}
|
||||
|
||||
private void setDisplayFileSize(boolean display) {
|
||||
LocalPreferences.setDisplayFileSize(this, display);
|
||||
mState.showSize = display;
|
||||
DirectoryFragment.get(getFragmentManager()).onDisplayStateChanged();
|
||||
invalidateOptionsMenu();
|
||||
}
|
||||
|
||||
/**
|
||||
* Update UI to reflect internal state changes not from user.
|
||||
*/
|
||||
|
||||
@@ -16,15 +16,10 @@
|
||||
|
||||
package com.android.documentsui;
|
||||
|
||||
import android.app.ActionBar;
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.preference.PreferenceFragment;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.view.MenuItem;
|
||||
|
||||
public class SettingsActivity extends Activity {
|
||||
public class LocalPreferences {
|
||||
private static final String KEY_ADVANCED_DEVICES = "advancedDevices";
|
||||
private static final String KEY_FILE_SIZE = "fileSize";
|
||||
|
||||
@@ -38,34 +33,13 @@ public class SettingsActivity extends Activity {
|
||||
.getBoolean(KEY_FILE_SIZE, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
getFragmentManager()
|
||||
.beginTransaction().replace(android.R.id.content, new SettingsFragment()).commit();
|
||||
|
||||
final ActionBar bar = getActionBar();
|
||||
if (bar != null) {
|
||||
bar.setDisplayShowHomeEnabled(false);
|
||||
bar.setDisplayHomeAsUpEnabled(true);
|
||||
}
|
||||
public static void setDisplayAdvancedDevices(Context context, boolean display) {
|
||||
PreferenceManager.getDefaultSharedPreferences(context).edit()
|
||||
.putBoolean(KEY_ADVANCED_DEVICES, display).apply();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
if (item.getItemId() == android.R.id.home) {
|
||||
finish();
|
||||
return true;
|
||||
}
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
public static class SettingsFragment extends PreferenceFragment {
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
addPreferencesFromResource(R.xml.preferences);
|
||||
}
|
||||
public static void setDisplayFileSize(Context context, boolean display) {
|
||||
PreferenceManager.getDefaultSharedPreferences(context).edit()
|
||||
.putBoolean(KEY_FILE_SIZE, display).apply();
|
||||
}
|
||||
}
|
||||
@@ -133,11 +133,12 @@ public class RootsFragment extends Fragment {
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
onDisplayStateChanged();
|
||||
}
|
||||
|
||||
public void onDisplayStateChanged() {
|
||||
final Context context = getActivity();
|
||||
final State state = ((DocumentsActivity) context).getDisplayState();
|
||||
state.showAdvanced = state.forceAdvanced
|
||||
| SettingsActivity.getDisplayAdvancedDevices(context);
|
||||
|
||||
if (state.action == ACTION_GET_CONTENT) {
|
||||
mList.setOnItemLongClickListener(mItemLongClickListener);
|
||||
|
||||
Reference in New Issue
Block a user