Merge "Show view mode button in action bar on Downloads."
This commit is contained in:
@ -29,7 +29,8 @@
|
||||
android:icon="@drawable/ic_menu_search"
|
||||
android:showAsAction="always"
|
||||
android:actionViewClass="android.widget.SearchView"
|
||||
android:imeOptions="actionSearch" />
|
||||
android:imeOptions="actionSearch"
|
||||
android:visible="false" />
|
||||
<item
|
||||
android:id="@+id/menu_sort"
|
||||
android:title="@string/menu_sort"
|
||||
@ -51,12 +52,13 @@
|
||||
android:id="@+id/menu_grid"
|
||||
android:title="@string/menu_grid"
|
||||
android:icon="@drawable/ic_menu_view_grid"
|
||||
android:showAsAction="never" />
|
||||
android:showAsAction="always" />
|
||||
<item
|
||||
android:id="@+id/menu_list"
|
||||
android:title="@string/menu_list"
|
||||
android:icon="@drawable/ic_menu_view_list"
|
||||
android:showAsAction="never" />
|
||||
android:showAsAction="always" />
|
||||
|
||||
<item
|
||||
android:id="@+id/menu_new_window"
|
||||
android:title="@string/menu_new_window"
|
||||
|
@ -38,6 +38,7 @@ import android.os.AsyncTask;
|
||||
import android.os.Bundle;
|
||||
import android.provider.DocumentsContract;
|
||||
import android.provider.DocumentsContract.Root;
|
||||
import android.support.annotation.CallSuper;
|
||||
import android.support.annotation.LayoutRes;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.util.Log;
|
||||
@ -138,10 +139,12 @@ public abstract class BaseActivity extends Activity implements SearchManagerList
|
||||
}
|
||||
|
||||
@Override
|
||||
@CallSuper
|
||||
public boolean onPrepareOptionsMenu(Menu menu) {
|
||||
super.onPrepareOptionsMenu(menu);
|
||||
|
||||
final RootInfo root = getCurrentRoot();
|
||||
mSearchManager.showMenu(canSearchRoot());
|
||||
|
||||
final boolean inRecents = getCurrentDirectory() == null;
|
||||
|
||||
final MenuItem sort = menu.findItem(R.id.menu_sort);
|
||||
@ -150,24 +153,17 @@ public abstract class BaseActivity extends Activity implements SearchManagerList
|
||||
final MenuItem list = menu.findItem(R.id.menu_list);
|
||||
final MenuItem advanced = menu.findItem(R.id.menu_advanced);
|
||||
final MenuItem fileSize = menu.findItem(R.id.menu_file_size);
|
||||
final MenuItem search = menu.findItem(R.id.menu_search);
|
||||
|
||||
// I'm thinkin' this isn't necesary here. If it is...'cuz of a bug....
|
||||
// then uncomment the linke and let's get a proper bug reference here.
|
||||
// mSearchManager.update(root);
|
||||
|
||||
// Search uses backend ranking; no sorting
|
||||
// Search uses backend ranking; no sorting, recents doesn't support sort.
|
||||
sort.setVisible(!inRecents && !mSearchManager.isSearching());
|
||||
sortSize.setVisible(mState.showSize); // Only sort by size when file sizes are visible
|
||||
fileSize.setVisible(!mState.forceSize);
|
||||
|
||||
// grid/list is effectively a toggle.
|
||||
grid.setVisible(mState.derivedMode != State.MODE_GRID);
|
||||
list.setVisible(mState.derivedMode != State.MODE_LIST);
|
||||
|
||||
sortSize.setVisible(mState.showSize); // Only sort by size when visible
|
||||
fileSize.setVisible(!mState.forceSize);
|
||||
advanced.setVisible(!mState.forceAdvanced);
|
||||
search.setVisible(canSearchRoot());
|
||||
|
||||
advanced.setTitle(LocalPreferences.getDisplayAdvancedDevices(this)
|
||||
? R.string.menu_advanced_hide : R.string.menu_advanced_show);
|
||||
fileSize.setTitle(LocalPreferences.getDisplayFileSize(this)
|
||||
@ -271,8 +267,10 @@ public abstract class BaseActivity extends Activity implements SearchManagerList
|
||||
return true;
|
||||
|
||||
case R.id.menu_paste_from_clipboard:
|
||||
DirectoryFragment.get(getFragmentManager())
|
||||
.pasteFromClipboard();
|
||||
DirectoryFragment dir = getDirectoryFragment();
|
||||
if (dir != null) {
|
||||
dir.pasteFromClipboard();
|
||||
}
|
||||
return true;
|
||||
|
||||
case R.id.menu_advanced:
|
||||
@ -295,6 +293,10 @@ public abstract class BaseActivity extends Activity implements SearchManagerList
|
||||
}
|
||||
}
|
||||
|
||||
final @Nullable DirectoryFragment getDirectoryFragment() {
|
||||
return DirectoryFragment.get(getFragmentManager());
|
||||
}
|
||||
|
||||
void showCreateDirectoryDialog() {
|
||||
CreateDirectoryFragment.show(getFragmentManager());
|
||||
}
|
||||
@ -423,7 +425,10 @@ public abstract class BaseActivity extends Activity implements SearchManagerList
|
||||
void setDisplayFileSize(boolean display) {
|
||||
LocalPreferences.setDisplayFileSize(this, display);
|
||||
mState.showSize = display;
|
||||
DirectoryFragment.get(getFragmentManager()).onDisplayStateChanged();
|
||||
DirectoryFragment dir = getDirectoryFragment();
|
||||
if (dir != null) {
|
||||
dir.onDisplayStateChanged();
|
||||
}
|
||||
invalidateOptionsMenu();
|
||||
}
|
||||
|
||||
@ -432,7 +437,10 @@ public abstract class BaseActivity extends Activity implements SearchManagerList
|
||||
*/
|
||||
void setUserSortOrder(int sortOrder) {
|
||||
mState.userSortOrder = sortOrder;
|
||||
DirectoryFragment.get(getFragmentManager()).onSortOrderChanged();
|
||||
DirectoryFragment dir = getDirectoryFragment();
|
||||
if (dir != null) {
|
||||
dir.onSortOrderChanged();
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
@ -447,7 +455,10 @@ public abstract class BaseActivity extends Activity implements SearchManagerList
|
||||
// in onOptionsItemSelected, and not do the full invalidation
|
||||
// But! That's a larger refactoring we'll save for another day.
|
||||
invalidateOptionsMenu();
|
||||
DirectoryFragment.get(getFragmentManager()).onViewModeChanged();
|
||||
DirectoryFragment dir = getDirectoryFragment();
|
||||
if (dir != null) {
|
||||
dir.onViewModeChanged();
|
||||
};
|
||||
}
|
||||
|
||||
public void setPending(boolean pending) {
|
||||
@ -496,7 +507,8 @@ public abstract class BaseActivity extends Activity implements SearchManagerList
|
||||
return;
|
||||
}
|
||||
|
||||
if (DirectoryFragment.get(getFragmentManager()).onBackPressed()) {
|
||||
DirectoryFragment dir = getDirectoryFragment();
|
||||
if (dir != null && dir.onBackPressed()) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -293,18 +293,24 @@ public class DocumentsActivity extends BaseActivity {
|
||||
|
||||
final DocumentInfo cwd = getCurrentDirectory();
|
||||
|
||||
boolean picking = mState.action == ACTION_CREATE
|
||||
|| mState.action == ACTION_OPEN_TREE
|
||||
|| mState.action == ACTION_PICK_COPY_DESTINATION;
|
||||
|
||||
if (picking) {
|
||||
// May already be hidden because the root
|
||||
// doesn't support search.
|
||||
mSearchManager.showMenu(false);
|
||||
}
|
||||
|
||||
final MenuItem createDir = menu.findItem(R.id.menu_create_dir);
|
||||
final MenuItem grid = menu.findItem(R.id.menu_grid);
|
||||
final MenuItem list = menu.findItem(R.id.menu_list);
|
||||
final MenuItem fileSize = menu.findItem(R.id.menu_file_size);
|
||||
|
||||
boolean recents = cwd == null;
|
||||
boolean picking = mState.action == ACTION_CREATE
|
||||
|| mState.action == ACTION_OPEN_TREE
|
||||
|| mState.action == ACTION_PICK_COPY_DESTINATION;
|
||||
|
||||
createDir.setVisible(picking && !recents && cwd.isCreateSupported());
|
||||
mSearchManager.showMenu(!picking);
|
||||
|
||||
// No display options in recent directories
|
||||
if (picking && recents) {
|
||||
|
@ -150,14 +150,12 @@ public class DownloadsActivity extends BaseActivity {
|
||||
final MenuItem newWindow = menu.findItem(R.id.menu_new_window);
|
||||
final MenuItem pasteFromCb = menu.findItem(R.id.menu_paste_from_clipboard);
|
||||
final MenuItem fileSize = menu.findItem(R.id.menu_file_size);
|
||||
final MenuItem search = menu.findItem(R.id.menu_search);
|
||||
|
||||
advanced.setVisible(false);
|
||||
createDir.setVisible(false);
|
||||
pasteFromCb.setEnabled(false);
|
||||
newWindow.setEnabled(false);
|
||||
fileSize.setVisible(false);
|
||||
search.setVisible(false);
|
||||
|
||||
Menus.disableHiddenItems(menu);
|
||||
return true;
|
||||
|
@ -245,20 +245,20 @@ public class FilesActivity extends BaseActivity {
|
||||
@Override
|
||||
public boolean onPrepareOptionsMenu(Menu menu) {
|
||||
super.onPrepareOptionsMenu(menu);
|
||||
|
||||
final RootInfo root = getCurrentRoot();
|
||||
|
||||
final MenuItem createDir = menu.findItem(R.id.menu_create_dir);
|
||||
final MenuItem pasteFromCb = menu.findItem(R.id.menu_paste_from_clipboard);
|
||||
final MenuItem settings = menu.findItem(R.id.menu_settings);
|
||||
|
||||
createDir.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
|
||||
createDir.setVisible(true);
|
||||
createDir.setEnabled(canCreateDirectory());
|
||||
pasteFromCb.setEnabled(mClipper.hasItemsToPaste());
|
||||
settings.setVisible(root.hasSettings());
|
||||
|
||||
// TODO: For some reason menu is ignoring this being set
|
||||
// to never in activity.xml. File a bug.
|
||||
// TODO: For some reason settings menu item is not
|
||||
// honoring the "showAsAction=never" setting in activity.xml.
|
||||
settings.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
|
||||
|
||||
Menus.disableHiddenItems(menu, pasteFromCb);
|
||||
@ -276,9 +276,10 @@ public class FilesActivity extends BaseActivity {
|
||||
createNewWindow();
|
||||
return true;
|
||||
case R.id.menu_paste_from_clipboard:
|
||||
DirectoryFragment dir = DirectoryFragment.get(getFragmentManager());
|
||||
dir = DirectoryFragment.get(getFragmentManager());
|
||||
dir.pasteFromClipboard();
|
||||
DirectoryFragment dir = getDirectoryFragment();
|
||||
if (dir != null) {
|
||||
dir.pasteFromClipboard();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -381,20 +382,26 @@ public class FilesActivity extends BaseActivity {
|
||||
@Override
|
||||
public boolean onKeyShortcut(int keyCode, KeyEvent event) {
|
||||
DirectoryFragment dir;
|
||||
// TODO: All key events should be statically bound using alphabeticShortcut.
|
||||
// But not working.
|
||||
switch (keyCode) {
|
||||
case KeyEvent.KEYCODE_A:
|
||||
dir = DirectoryFragment.get(getFragmentManager());
|
||||
dir.selectAllFiles();
|
||||
dir = getDirectoryFragment();
|
||||
if (dir != null) {
|
||||
dir.selectAllFiles();
|
||||
}
|
||||
return true;
|
||||
case KeyEvent.KEYCODE_C:
|
||||
// TODO: Should be statically bound using alphabeticShortcut. See b/21330356.
|
||||
dir = DirectoryFragment.get(getFragmentManager());
|
||||
dir.copySelectedToClipboard();
|
||||
dir = getDirectoryFragment();
|
||||
if (dir != null) {
|
||||
dir.copySelectedToClipboard();
|
||||
}
|
||||
return true;
|
||||
case KeyEvent.KEYCODE_V:
|
||||
// TODO: Should be statically bound using alphabeticShortcut. See b/21330356.
|
||||
dir = DirectoryFragment.get(getFragmentManager());
|
||||
dir.pasteFromClipboard();
|
||||
dir = getDirectoryFragment();
|
||||
if (dir != null) {
|
||||
dir.pasteFromClipboard();
|
||||
}
|
||||
return true;
|
||||
default:
|
||||
return super.onKeyShortcut(keyCode, event);
|
||||
|
@ -302,8 +302,10 @@ public class RootsFragment extends Fragment {
|
||||
for (final RootInfo root : roots) {
|
||||
final RootItem item = new RootItem(root);
|
||||
if (root.isLibrary()) {
|
||||
if (DEBUG) Log.d(TAG, "Adding " + root + " as library.");
|
||||
libraries.add(item);
|
||||
} else {
|
||||
if (DEBUG) Log.d(TAG, "Adding " + root + " as non-library.");
|
||||
others.add(item);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user